mysql 5.6 创建索引导致表锁阻塞查询
来源:互联网 发布:http端口号是多少 编辑:程序博客网 时间:2024/06/05 11:33
今天遇到一个表锁,对表进行select操作阻塞,最后发现在表操作时的时候执行了创建索引,导致整个表锁了
测试如下:
1.先执行一个慢查询
mysql> select sleep(500) from order_log;
2.对表进行创建索引操作
ALTER TABLE `order_log`
ADD KEY `idx_orderlog_name`(orderno,operate_time) USING BTREE 或者
create index idx_ordergood_com on `order_log` (orderno,operate_time)
3.然后在对表进行简单的查询操作发现查询阻塞
mysql> select * from order_log limit 1;
+----------+-------------------+---------------+--------------+-----------------
-+---------------------+-----------------------------------------+------------+-
-------------+--------------------------------------------------+-------------+
| Id | orderno | customer_code | operate_type | operater_jobuuid
| operate_time | about_info | about_code |
synch_status | httpcol | httpcol_CRC |
+----------+-------------------+---------------+--------------+-----------------
-+---------------------+-----------------------------------------+------------+-
-------------+--------------------------------------------------+-------------+
| 12772266 | PD145136518839426 | ZUE | 2 | ADMIN
| 2015-12-29 13:32:55 | 管理员创建作业任务(TZUE155584) | NULL |
NULL | https://www.baidu.com/12772266/PD145136518839426 | 3244637683 |
+----------+-------------------+---------------+--------------+-----------------
-+---------------------+-----------------------------------------+------------+-
-------------+--------------------------------------------------+-------------+
1 row in set (9 min 37.30 sec) --查询9分钟多
mysql>
索引也创建了10分钟,正常情况下30s就建好了
[SQL]create index idx_ordergood_com on `order_log` (orderno,operate_time)
受影响的行: 0
时间: 607.388s
只有慢查询结束了之后,才能创建索引和其他的操作
mysql 5.6支持在线ddl操作,在对表进行alter table 时,对该表的增,删,改,查均不会锁表。
但如果在该表被访问时,执行DDL操作会导致表锁,会阻塞对表的任何操作,所以在进行上线操作时一定要观察一下是否有对表操作的慢的查询语句或者事物
- mysql 5.6 创建索引导致表锁阻塞查询
- MySQL前缀索引导致的慢查询
- MySql 创建、删除、查询索引
- MySQL索引创建,删除。查询
- MySQL 创建索引、重建索引、查询索引、删除索引
- MYSQL使用索引导致查询变慢的例子
- mysql优化,导致查询不走索引的原因总结
- mysql在索引上查询非索引类型的值导致的慢查询
- 【mysql】mysql重建索引命令、查询数据表索引、创建索引、删除索引
- postgresql 不阻塞创建索引
- MySQL查询阻塞语句
- 查询数据库表索引名称、索引字段、创建索引语句
- mysql查询导致全表扫描
- MySQL创建表的时候创建索引
- 通过创建索引解决MySQL数据库查询慢的问题
- solr创建查询索引
- lucene 索引创建查询
- MongoDB 创建索引导致锁库的解决方案
- test
- java程序一定会加载的包是哪个?
- ACM2
- 线性筛(欧拉筛)
- 关于Python类对象如何实现的反向迭代
- mysql 5.6 创建索引导致表锁阻塞查询
- 物联网技术在工业领域的主要应用
- iOS实录13:GCD使用小结
- 使用lhgdialog弹框提交表单
- js运动技术--完美运动框架
- Selenium自动化测试笔记(1)
- 在工作中如何有PDF编辑器给PDF文件加密
- git命令
- 学习pdo 数据访问抽象层