MySQL参数怎么使用
createtable的时候,指定DELAY_KEY_WRITE。
当表已经存在的时候:ALTERTABLEtable_nameDELAY_KEY_WRITE=1。
适用范围:表有update操作,这个参数的优势会很好的体现出来。因为这个参数能延迟更新索引到表关闭。当我们需要经常跟新一个大表的时候,可以考虑使用这个参数。
说明:表关闭会在什么时候发生?你可以理解成当flashtable的时候,表将关闭。那么有2种情况将会发生flushtable:
当cache满了一个新的thread试图打开一个表的时候,那个表没有在cache;
当cache里的表数比table_cache多时thread不在使用表;
这个2种情况将会flushtable。
当然,你也可以直接设置启动参数flush_time,设置每多少时间flushtable一次。
MySQL参数需要注意什么
当DELAY_KEY_WRITE使用的时候,如果出现重启或者掉电等情况,会导致在cache的索引update没来得及更新,所以必须在启动参数加上--myisam-recover,这样在你启动mysql的时候会检查你的表并同步表和索引.或者在重启服务器之前运行myisamchk。(然而,即使在这种情况下,应通过使用DELAY_KEY_WRITE保证不丢失数据,因为关键字信息总是可以从数据行产生)。如果你使用该特性,你应用--myisam-recover选项启动服务器,为所有MyISAM表添加自动检查。