【发布时间】:2013-03-26 21:57:12
【问题描述】:
如果一个表经常从前端写入,并且同一个表也必须经常搜索。两者都对性能至关重要。
例如,一个可搜索的 POST 表在其“content”列上有全文索引?如果很少有用户在写帖子,它会转到同一个表,然后其他用户将同时在表上搜索关键字。
Will UPDATE/INSERT operation lock SELECT queries in above case ?
数据库 - MySQL
【问题讨论】:
如果一个表经常从前端写入,并且同一个表也必须经常搜索。两者都对性能至关重要。
例如,一个可搜索的 POST 表在其“content”列上有全文索引?如果很少有用户在写帖子,它会转到同一个表,然后其他用户将同时在表上搜索关键字。
Will UPDATE/INSERT operation lock SELECT queries in above case ?
数据库 - MySQL
【问题讨论】:
这取决于表的存储引擎
InnoDB 支持MVCC 和4 Transaction Isolation Levels
这允许插入、更新、删除和选择在 99.999% 的时间内和谐地存在
这是一个完全不同的竞争环境。默认情况下,每个 INSERT、UPDATE 和 DELETE 都会锁定整个表。通过将concurrent_insert 设置为2,INSERT 可以禁用表锁定。(有关更多信息,请参阅Concurrent Inserts)。否则,UPDATE 和 DELETE 仍然会在执行全表锁时造成严重破坏。
【讨论】: