2013-03-26 64 views
4

如果一个表经常从前端写入,并且同一个表也必须频繁地搜索。两者都是性能关键。在MySQL上并发读取和写入表

例如在其“内容”列中可搜索具有全文索引的POST表?如果少数用户正在撰写帖子,则会转到同一个表格,然后其他用户将同时在表格中搜索关键字。

Will UPDATE/INSERT operation lock SELECT queries in above case ? 

数据库 - MySQL的

回答

8

这取决于表

InnoDB

InnoDB支持MVCC4 Transaction Isolation Levels

这允许插入,更新,删除,并选择住的时间和谐99.999%

MyISAM

这是一个完全不同的游戏场。默认情况下,每个INSERT,UPDATE和DELETE锁定整个表。 INSERT可以通过将concurrent_insert设置为2来禁用表锁。(有关更多信息,请参阅Concurrent Inserts)。否则,更新和删除仍然会造成一些破坏性的全表锁。

+0

感谢@RolandoMySQLDBA,我的大多数表格都是InnoDB。所以,我相信所有的实际目的都是基于你的解释,我将同时进行读/写。一个表在MyISAM中,我相信我有这种方式来添加全文索引搜索。但是,我打算将MySQL升级到5.6,它也支持InnoDB的FTI – fortm 2013-03-26 17:24:01