1

有没有办法让 mysql 查询不对 myisam 表进行任何锁定?

我的问题似乎是我的 Sphinx 搜索索引器在我的一个 myisam 表上锁定了 60 多秒,这似乎使更新语句等待锁被释放,这反过来又使其他查询等待更新语句完成。索引器使用 mysql_use_result 并在调用 mysql_free_result 之前完成大部分索引工作。至少这是我对正在发生的事情的最佳猜测,但如果这对您来说似乎是错误的,请告诉我。

解决该问题的一种方法似乎是按 id 范围细分索引器查询。但似乎我不应该这样做,因为我真的不需要这个查询来防止任何其他查询同时运行。在这个用例中,性能比一致性重要得多。

谢谢!

4

1 回答 1

1

似乎 mysql 查询总是对 myisam 表进行读取锁定。

我的问题的解决方案是在 my.cnf 的 [mysqld] 部分中设置 low-priority-updates = 1。

我仍然想知道是否有一种方法可以在 mysql 中进行查询而不使用读锁,但我会用更好的标题打开另一个问题。

谢谢!

于 2010-01-07T07:39:29.027 回答