mysql一个表,大概300条记录,每秒全部更新一次,使用什么引擎好? 
看起来频繁更新用innodb比较好,但是innodb的磁盘IO非常大,感觉有点吃力。 
想用内存表,但是网上都说,因为是表锁,所以频繁更新,会不会阻塞?

解决方案 »

  1.   

    修改频率高的用innodb比较好
    要不然改用nosql
      

  2.   

    亲 不明白 你要干什么 ? 为什么每秒修改一次 ??  数据是否要求严格的一致性 ? 如果保证一致性 考虑使用 innodb 。
      

  3.   

     版主 有没有简单易用的mysql性能测试工具?
      

  4.   

    300条data,还是使用myisam吧
      

  5.   

    300个线程负责写,读是1个线程吧
    1.内存表,锁的消耗相对于I/O来说是很少的,我们的程序里用mysql内存表代替rrdtool,做很多值每秒更新的图表
    2.把innodb/myisam放内存(linux下可以使用/dev/shm这个文件系统,Windows需要ramdisk)里。关机丢失结构,开机重建结构。
    3.自己写个结构数组,如果列的数目只有1个可以参考LOCKFREE编程,原子读、原子写,不用加锁。列的数目比较多,每行一个读写锁。
      

  6.   

    读写频繁,安全性要求不高的则推荐使用 myisam
    如果仅300 条,则建议直接使用heap / memory 存储引擎。
      

  7.   

    你好,
    1.内存表,锁的消耗相对于I/O来说是很少的,我们的程序里用mysql内存表代替rrdtool,做很多值每秒更新的图表
    你们做每秒更新的话,不会有锁表的情况把,因为内存表更新是锁表的。
    2.把innodb/myisam放内存(linux下可以使用/dev/shm这个文件系统,Windows需要ramdisk)里。关机丢失结构,开机重建结构。
    怎么把innodb放到ramdisk,怎么做啊?
      

  8.   

    1.没有特意加锁,也没有出现死锁2.这个好像没有啥难度吧,linux下很简单,windows下搜索 windows ramdisk先做ramdisk,再创建表,关闭数据库,拷贝该表相关文件到ramdisk(顺便做个备份),最后搜mklink,把ramdisk的表文件链接回原路径,启动数据库。
    如果再精细点儿,可以把每次开机自动把备份写入ramdisk,创建链接,再启动mysql。