mysql - 在其他表中分离更新列是否有助于优化(MySQL MyISAM 表)?

标签 mysql phpmyadmin query-optimization myisam

MySQL MyISAM "Table1"有 70% select13% update0.67% insert 语句近似.

有一个“count_column(int)”用于增加主键计数。(更新语句)

更新“count_column”在“Waiting for table level lock”中进行表选择查询

那么在其他表中分离“count_column”是否会减少“等待表级锁”

我还需要在带有连接的选择语句中分隔列。

谢谢,Yogs

最佳答案

据我所知,您的锁定问题是 INSERT 的 COUNT,而不是 UPDATE 本身 - 但您必须有大量的 SELECT。你的问题缺少一些细节......

COUNT 确实在 MyISAM 表上进行了优化,如果您遇到问题,您可能应该考虑计数估计或存储此值的内存表:-\但是为 MyISAM 存储了一个精确的行计数,可以非常快速地获得存储引擎,所以你甚至可能用你的解决方案减慢 MySQL 的速度。 “慢”COUNT 对像 InnoDB 这样的引擎有效,因为它们具有事务性。

另一件需要考虑的事情是,将计数存储在表本身的列中是每行的附加列,这是非常糟糕的。

如果您使用触发器来完成,您应该注意 http://dev.mysql.com/doc/refman/5.0/en/faqs-triggers.html#qandaitem-B-5-1-12 :)

关于mysql - 在其他表中分离更新列是否有助于优化(MySQL MyISAM 表)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10752112/

相关文章:

PHP 有效地重复 SQL 查询每个数组的项目

mysql - 如何使用 Express 连接 Node.js 和 MySQL 8.0?

sql - Mysql提高SELECT速度

mysql - 如何优化 MySQL 中涉及子查询的查询?

php - 什么会导致 变成 unicode 字符?

mysql - 按使用标签的帖子数量对标签进行排序?

php - 是否可以从本地主机转到外部地址

windows - phpMyAdmin 配置存储未完全配置

mysql - 如果之前的记录具有较低的值,则选择一条记录花费的时间太长而失败

mysql - 将大量扩展插入转换为 mysql 的简单插入