MYSQL索引
文章平均质量分 60
远方的风灬
这个作者很懒,什么都没留下…
展开
-
如何利用工具,迅猛定位低效SQL?
《两个工具分析SQL死锁》《SQL空值带来的大坑》两个案例分析,展现了MySQL性能分析工具explain的强大。《同一个SQL语句,为啥性能差异咋就这么大呢?》详细叙述了explain结果中最重要的type字段(连接类型)的含义。其实,explain结果中还有一个Extra字段,对分析与优化SQL有很大的帮助,今天花1分钟简单和大家聊一聊。数据准备:create table user (id intprimary key,name varchar(20),.原创 2021-08-14 16:01:53 · 136 阅读 · 0 评论 -
MySQL索引原理及慢查询优化
背景MySQL凭借着出色的性能、低廉的成本、丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库。虽然性能出色,但所谓“好马配好鞍”,如何能够更好的使用它,已经成为开发工程师的必修课,我们经常会从职位描述上看到诸如“精通MySQL”、“SQL语句优化”、“了解数据库原理”等要求。我们知道一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,所以查询语句的优化显然是重中之重。本人从2013年7月份起,一直在美团原创 2021-08-14 15:39:26 · 88 阅读 · 0 评论 -
MYSQL索引无效和索引有效的详细介绍
1、WHERE字句的查询条件里有不等于号(WHERE column!=...),MYSQL将无法使用索引2、类似地,如果WHERE字句的查询条件里使用了函数(如:WHERE DAY(column)=...),MYSQL将无法使用索引3、在JOIN操作中(需要从多个数据表提取数据时),MYSQL只有在主键和外键的数据类型相同时才能使用索引,否则即使建立了 索引也不会使用4、如果WHERE子句的查询条件里使用了比较操作符LIKE和REGEXP,MYSQL只有在搜索模板的第一个字符不是通配符的情况下才原创 2021-08-14 11:46:51 · 341 阅读 · 0 评论 -
mysql添加索引导致表锁死
场景:在给一张有几万条记录的表添加索引时,进度非常慢,导致其它查询无法进行处理方式:使用Navicat的命令行模式,执行以下命令:show processlist;这时会看到有哪些线程正在执行,也可以查看锁表的线程。你会发现alter table * add key ****那个线程状态是Waiting for table metadata lock,后面有个这个表的所有操作都是这个状态,很明显是这条加索引的语句把表给锁了。查看线程ID,执行kill 线程ID这样被锁住的表就原创 2021-08-13 17:13:17 · 6206 阅读 · 0 评论