【问题标题】:Select query Locks the table, why does this happen选择查询锁表,为什么会这样
【发布时间】:2011-09-29 13:53:51
【问题描述】:

当我使用 MATCH AGAINST 时,我有一个 MyISAM 表,并且我有一个锁定整个表的选择查询。为什么会这样?

这是一些输出:

【问题讨论】:

  • 不相关 - 但您使用什么程序来生成该输出?
  • 好像显示完整的进程列表
  • 那是SHOW FULL PROCESSLISTphpMyAdmin 的进程选项卡
  • 我遇到过这种情况,但是选择查询可能会导致锁定?

标签: php mysql performance join


【解决方案1】:

我相信这个问题,Any way to select without causing locking in MySQL? 可以帮助你。它似乎被锁定,因为它是一个 MyISAM 表。

【讨论】:

  • 没错,但我需要全文索引。
【解决方案2】:

MyISAM 是“表级锁定”,这意味着该表一次只能处理一个查询。 因此,正如@Drazisil 所说,您几乎没有选择:优化查询以减少锁定问题-停止使用 MySQL 纯文本功能(性能非常差)-将大查询拆分为较小的查询-改进索引或切换到 innodb是“行级锁定”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-01
    • 1970-01-01
    • 2011-02-28
    • 1970-01-01
    • 2018-10-15
    相关资源
    最近更新 更多