【发布时间】:2018-11-15 14:15:15
【问题描述】:
我有一个带有表的 mySql innoDB 数据库(带有自动增量主键)。我有许多进程在表上执行读取操作。我有其他(少数)进程需要在时间间隔(少于 30 秒)内写入同一个表。写入进程有时会遇到超时,因为他们发现表被读取操作锁定(超过 30 秒)。
有没有办法防止这种行为并允许写入进程写入,即使其他进程正在读取?
【问题讨论】:
标签: mysql innodb table-locking
我有一个带有表的 mySql innoDB 数据库(带有自动增量主键)。我有许多进程在表上执行读取操作。我有其他(少数)进程需要在时间间隔(少于 30 秒)内写入同一个表。写入进程有时会遇到超时,因为他们发现表被读取操作锁定(超过 30 秒)。
有没有办法防止这种行为并允许写入进程写入,即使其他进程正在读取?
【问题讨论】:
标签: mysql innodb table-locking
解决这种情况的主要方法是加快读取速度。让我们看看其中的一些,以及SHOW CREATE TABLE。通常它就像添加一个“复合”索引一样简单。
如果这是一个数据仓库应用程序,并且读取是读取大量行并执行GROUP BY 的大型“报告”,那么build and maintain Summary Table(s) 是一个很好的解决方案。
【讨论】: