![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mysql
CPeony
大三,from bytedance to netease,下一站会在哪?
展开
-
利用mysql自带的profile和status查看语句的执行情况
mysql用profile查看语句的执行情况有一些耗时非常长的语句,可以通过如下语句检测出来,哪里出了问题。1.首先确保profile功能开启show variables like 'profiling'如果是on才是开启的没开启执行set profiling=on。2.执行sql查询语句因为profile是检测你的查询语句性能分别耗时多少,所以得执行一下select吧。3.show profilesshow profiles用来查看之前执行过的语句4.显示语句具体信息show pro原创 2020-11-10 16:58:44 · 484 阅读 · 0 评论 -
mysql使用索引的原则
mysql索引失效的原因部分索引失效的情况在mysql5.6和mysql8.0测出来的不一样之前文章讲述过,在explain出来的表格中,有一个字段叫做possible keys,表示可能用到的索引,还有另一个字段叫key,表示真正用到的索引。没用到的索引就相当于是失效了。配上复合索引的底层结构介绍,帮助理解:https://blog.csdn.net/feichitianxia/article/details/107997795上面这个表建了一条索引ALTER TABLE staffs原创 2020-11-10 16:57:04 · 261 阅读 · 0 评论 -
mysql建立索引的方法
mysql的join语句建立索引的原则和优化单表的索引以下面的表为例,表叫article。创建索引语句:create index idx_ccv on article(category_id,comments,views);查询语句:explain select id,author_id from `article` where category_id=1 and comments>1 order by views desc limit 1;explain的结果如下:extra列出现了原创 2020-11-10 16:55:31 · 1203 阅读 · 0 评论 -
用explain查看一个sql底层的执行情况
查看一个sql底层的执行情况explain + sql语句例如 explain select * from user显示出:idselect_typetabletypepossible_keyskeykey_lenrefrowsextramysql的索引,除了聚簇索引(一般都是主键)之外的索引(非聚簇索引),存储的都是索引列上+主键列的数值,不存储其他列。所以查完索引如果要获取其他列的属性,还需要通过得到的主键去查一遍主键,主键索引会含有其他字段的信息。详细文章原创 2020-11-10 16:52:05 · 470 阅读 · 0 评论 -
mysql的join
mysql的join方式join是连接查询两个表的一种方式,会把两个表符合条件的行拼到一起形成一个新表并返回。对于两个集合,join可以生成七种情况,如下。下面分别对这七种情况介绍sql语句。情况1这种情况直接用inner join就可以。select * from tableA A inner join tableB B on A.key = B.key;情况2直接left join。select * from tableA A left join tableB B on A.ke原创 2020-11-10 16:44:12 · 375 阅读 · 0 评论