一、EXPLAIN 做MySQL优化,我们要善用EXPLAIN查看SQL执行计划。 下面来个简单的示例,标注(1,2,3,4,5)我们要重点关注的数据 type列,连接类型。一个好的sql语句至少要达到range级别。杜绝出现all级别 key列,使用到的索引名。如果没有选择索引,值是NULL。可以 ...
分类:
数据库 时间:
2020-09-08 20:46:56
阅读次数:
49
一.mysql 优化之is null ,is not null 索引使用测试 1.创建t_user表,在name字段创建索引,且name字段不能为null。 EXPLAIN select * from t_user where name is not null;//不使用索引; EXPLAIN se ...
分类:
数据库 时间:
2020-08-25 16:01:53
阅读次数:
49
Job:控制Pod完成工作 Begin: kubectl explain job.spec Job基础Yaml apiVersion: batch/v1 kind: Job metadata: name: batch-job namespace: controller-test spec: temp ...
分类:
其他好文 时间:
2020-08-20 19:27:01
阅读次数:
140
1.服务器层优化1.将数据保存在内存中,保证内存读取数据设置足够大的innodb_buffer_pool_size,将数据读取到内存中。建议innodb_buffer_poll_size设置为总内存大小的3/4或者4/5怎么确定innodb_buffer_pool_size足够大。数据是从内存读取而不是硬盘?innodb_buffer_pool_pages_free为0则表示bufferpool已
分类:
数据库 时间:
2020-08-18 13:37:49
阅读次数:
66
查看es集群健康状态curl-XGET"http://$ip:9200/_cat/health?"查看索引变红的原因curl-XGET"http://$ip:9200/_cluster/allocation/explain"如下确认索引是否可删除,或者调整副本为0
分类:
其他好文 时间:
2020-08-08 09:25:59
阅读次数:
119
今天执行通过时间范围查询订单数量的sql时,想看看该时间字段是否走了索引,发现一个很有意思的问题. 首先说一下查询是否使用了索引的方法 通过explain来查看,即将explain放在查询的sql前面 explain SELECT * from ord_order_consume where cre ...
分类:
数据库 时间:
2020-07-24 22:12:22
阅读次数:
163
EXPLAIN作为MySQL的性能分析神器,读懂其结果是很有必要的,然而我在各种搜索引擎上竟然找不到特别完整的解读。都是只有重点,没有细节(例如type的取值不全、Extra缺乏完整的介绍等)。 所以,我肝了将近一个星期,整理了一下。这应该是全网最全面、最细致的EXPLAIN解读文章了,下面是全文。 ...
分类:
数据库 时间:
2020-07-14 21:50:05
阅读次数:
75
1)count(*)会忽略所有的列,直接统计所有列数,不要使用count(列名),也就是不要使用count(1),count(id) 2)可以使用explain查询近似值,用近似值替代count(*) 3)使用缓存,记录总数 4)允许的话,把innodb改为myisam 5)SELECT (SELE ...
分类:
数据库 时间:
2020-07-10 18:48:16
阅读次数:
75
近期有个产品的统计信息超过了2000万行,后台的查询直接超时了,单纯sql在命令行执行都需要20s以上。用EXPLAIN后发现因为索引太多这条SQL没有用上计划的索引,更改后直接秒级出结果,下面看看EXPLAIN(Navicat里的解释按钮同样效果)的威力。 explain执行后的效果大致如下: m ...
分类:
数据库 时间:
2020-07-09 00:52:22
阅读次数:
111
本文不涉及复杂的底层数据结构,通过explain解释SQL,并根据可能出现的情况,来做具体的优化,使百万级、千万级数据表关联查询第一页结果能在2秒内完成(真实业务告警系统优化结果)。 希望读者能够理解SQL的执行过程,并根据过程优化,走上自己的"成金之路" 需要优化的查询: 使用explain出现了 ...
分类:
数据库 时间:
2020-07-04 15:20:34
阅读次数:
97