![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
sql优化
liao0801_123
这个作者很懒,什么都没留下…
展开
-
mysql优化Analyze Table
Analyze TableMySQL 的Optimizer(优化元件)在优化SQL语句时,首先需要收集一些相关信息,其中就包括表的cardinality(可以翻译为“散列程度”),它表示某个索引对应的列包含多少个不同的值——如果cardinality大大少于数据的实际散列程度,那么索引就基本失效了。我们可以使用SHOW INDEX语句来查看索引的散列程度:SHOW INDEX FROM ...转载 2018-11-14 17:59:17 · 568 阅读 · 0 评论 -
MySQL Explain详解
额外阅读:http://www.cnblogs.com/miskis/p/9081187.html在日常工作中,我们会有时会开慢查询去记录一些执行时间比较久的SQL语句,找出这些SQL语句并不意味着完事了,些时我们常常用到explain这个命令来查看一个这些SQL语句的执行计划,查看该SQL语句有没有使用上了索引,有没有做全表扫描,这都可以通过explain命令来查看。所以我们深入了解MySQ...转载 2018-11-13 16:37:36 · 112 阅读 · 0 评论 -
mysql 索引失效的几种原因
索引并不是时时都会生效的,比如以下几种情况,将导致索引失效: 1.如果条件中有or,即使其中有条件带索引也不会使用(这也是为什么尽量少用or的原因) 注意:要想使用or,又想让索引生效,只能将or条件中的每个列都加上索引 2.对于多列索引,不是使用的第一部分,则不会使用索引 3.like查询是以%开头 4.如果列类型是字符串,那一定要在条件...转载 2018-11-13 16:26:02 · 338 阅读 · 0 评论 -
MySQL:浅析 Impossible WHERE noticed after reading const tables
使用 EXPLAIN 执行计划的时候,在 Extra 中偶尔会看到这样的描述:Impossible WHERE noticed after reading const tables字面上的意思是:读取const tables表之后, 没有发现匹配的行。 通过示例我们重现一下该场景。首先创建两张表,班级表(class),学生表(student)。CREATE TABLE `class`...转载 2018-11-13 16:11:55 · 214 阅读 · 0 评论 -
大数据量表的查询优化及索引使用
一、对于运算逻辑,尽可能将要统计的各项目整合在一个查询语句中计算,而不是用分组条件或分项目调用多个查询语句,而后在代码里计算结果。二、查询语句的优化,诸如不用"select *"、多表关联查询时添加别名于查询字段上、避免使用in、not in关键字、非去除重复时用union all替换union、先过滤后分组、排序等等。三、在无法更改数据结构、不影响其它业务操作情况下,为查询、统计项建立索...转载 2018-11-01 11:00:38 · 1624 阅读 · 0 评论 -
mysql使用count+group by 日期,无数据的日期补0方法
1、先用一个查询把指定日期范围的日期列表搞出来-- t_device 为任意表,只需要数据量大于要统计的天数SELECT @cdate := date_add(@cdate, INTERVAL - 1 DAY) AS statisName, 0 AS countFROM ( SELECT @cdate := date_add(CURDATE(), INTERVAL + 1...原创 2019-09-06 16:08:30 · 3094 阅读 · 0 评论