myisam表出现大量locked.
myisam读操作之间并不互锁,但在我的系统当中却会时常出现这样的情况,
一个select 进程处于sending data状态,而其它select进程则处于locked状态.
这样的状况并不总出现,可一旦出现就会非常麻烦,整个系统都会停滞!
以下是show processlist的结果:
请斑竹等高手为我解惑!
一个select 进程处于sending data状态,而其它select进程则处于locked状态.
这样的状况并不总出现,可一旦出现就会非常麻烦,整个系统都会停滞!
以下是show processlist的结果:
+------+-------------+-----------------+-----------+---------+-------+----------------------------------+------------------------------------------------------------------------------------------------------+
| Id | User | Host | db | Command | Time | State | Info |
+------+-------------+-----------------+-----------+---------+-------+----------------------------------+------------------------------------------------------------------------------------------------------+
| 3 | system user | | NULL | Connect | 1323 | Waiting for master to send event | NULL |
| 4 | system user | | news_data | Connect | -1066 | Locked | UPDATE E_info SET info_reprint = info_reprint + 1 WHERE infoID = 2724158912 |
| 1130 | web_dev | 10.0.0.46:57567 | news_data | Query | 92 | Sending data | ( SELECT E_info.infoID,E_info.info_time , E_role_info.roleID,E_role_info.related
FROM `E |
| 1133 | web_dev | 10.0.0.46:57685 | news_data | Query | 74 | Locked | ( SELECT 3109066 AS 'columnID', '4.1.' AS 'cno', E_info_100.infoID,E_info_100.info_title, E_info_10 |
| 1134 | web_dev | 10.0.0.46:57727 | news_data | Query | 55 | Locked | ( SELECT 2601693 AS 'columnID', '1.1.1.' AS 'cno', E_info_100.* , E_role_info_100.roleID,E_role_in |
| 1135 | web_dev | 10.0.0.46:57740 | news_data | Query | 52 | Locked | ( SELECT E_info_100.infoID,E_info_100.info_time , E_role_info_100.roleID,E_role_info_100.related |
| 1136 | web_dev | 10.0.0.46:57744 | news_data | Query | 51 | Locked | ( SELECT 3032931 AS 'columnID', '1.1.' AS 'cno', E_info_100.infoID,E_info_100.info_title, E_info_10 |
| 1137 | web_dev | 10.0.0.46:57756 | news_data | Query | 47 | Locked | ( SELECT 2378187 AS 'columnID', '3.2.' AS 'cno', E_info_100.infoID,E_info_100.info_title, E_info_10 |
| 1138 | web_dev | 10.0.0.46:57794 | news_data | Query | 38 | Locked | ( SELECT E_info_100.infoID,E_info_100.info_time , E_role_info_100.roleID,E_role_info_100.related |
| 1139 | web_dev | 10.0.0.46:57797 | news_data | Query | 38 | Locked | ( SELECT 2243835 AS 'columnID', '2.1.' AS 'cno', E_info_100.infoID,E_info_100.info_title, E_info_10 |
| 1140 | web_dev | 10.0.0.46:57805 | news_data | Query | 34 | Locked | ( SELECT E_info_100.infoID,E_info_100.info_time , E_role_info_100.roleID,E_role_info_100.related |
| 1141 | web_dev | 10.0.0.46:57834 | news_data | Query | 28 | Locked | ( SELECT 350674 AS 'columnID', '2.2.' AS 'cno', E_info_100.infoID,E_info_100.info_title, E_info_100 |
| 1142 | web_dev | 10.0.0.46:57849 | news_data | Query | 25 | Locked | ( SELECT E_info_100.infoID,E_info_100.info_time , E_role_info_100.roleID,E_role_info_100.related |
| 1143 | web_dev | 10.0.0.46:57854 | news_data | Query | 25 | Locked | ( SELECT 79991 AS 'columnID', '2.1.1.' AS 'cno', E_info_100.infoID,E_info_100.info_title, E_info_10 |
| 1144 | web_dev | 10.0.0.46:57856 | news_data | Query | 25 | Locked | ( SELECT 183824 AS 'columnID', '2.5.' AS 'cno', E_info_100.* , E_role_info_100.roleID,E_role_info_ |
| 1145 | web_dev | 10.0.0.46:57914 | news_data | Query | 8 | Locked | ( SELECT E_info_100.infoID,E_info_100.info_time , E_role_info_100.roleID,E_role_info_100.related |
| 1146 | web_dev | 10.0.0.46:57919 | news_data | Query | 6 | Locked | ( SELECT E_info_100.infoID,E_info_100.info_time , E_role_info_100.roleID,E_role_info_100.related |
| 1149 | root | localhost | NULL | Query | 0 | NULL | show processlist |
+------+-------------+-----------------+-----------+---------+-------+----------------------------------+------------------------------------------------------------------------------------------------------+
18 rows in set (0.00 sec)
请斑竹等高手为我解惑!
...全文
相关推荐
高性能MySQL读书笔记 找出谁持有锁
实验开始时,我们在`test`数据库创建了一个名为`foo`的MyISAM表,并插入了两条数据。
mysql 卡死 大部分线程长时间处于sending data的状态
此外,数据表类型的选择也可能影响性能,例如将InnoDB表转换为MYISAM有时可以解决数据读取问题。总的来说,遇到MySQL服务器卡死的情况,应从多个角度进行排查,包括但不限于:1.
MySQL表锁解决方法[项目代码]
索引优化是降低锁竞争的核心手段,所有高频更新、删除、范围查询的字段必须建立合适复合索引,避免因缺失索引导致全表扫描进而引发大量行锁甚至锁升级为表锁。
批量 kill mysql 中运行时间长的sql
为了批量处理长时间运行的SQL,可以利用`information_schema.processlist`表。这个系统表提供了所有线程的详细信息,包括用户、状态和运行时间等。
cacti-mysql-template指标解释.pdf
#### MyISAM 相关指标- **MyISAM Indexes**:展示MyISAM表索引的状态,包括创建、删除等操作。


