首页 > 数据库 >mysql 慢查询处理

mysql 慢查询处理

时间:2023-07-08 10:55:53浏览次数:58  
标签:category 查询处理 索引 mysql Using post id

mysql 执行

EXPLAIN SELECT `post`.*,`category_post`.`category_id` FROM `mj_portal_post` `post` INNER JOIN `mj_portal_category_post` `category_post` ON `post`.`id`=`category_post`.`post_id` WHERE `post`.`post_status` = 1 AND `post`.`post_type` = 1 AND `post`.`delete_time` = 0 AND `category_post`.`category_id` IN ('1',2,3,4) AND `post`.`create_time` >= 0 ORDER BY post.published_time DESC LIMIT 9180,20

结果

idselect_typetabletypepossible_keyskeykey_lenrefrowsExtra  
1 SIMPLE category_post ALL term_taxonomy_id NULL NULL NULL 23041 Using where; Using temporary; Using filesort
1 SIMPLE post eq_ref PRIMARY,type_status_date,post_date PRIMARY 8 数据库.category_post.post_id 1 Using where

type ALL 遍历了全表,而且数据量很大,这应该是造成慢查询的主要原因

type eq_ref  唯一性索引扫描,表中只有一条记录与之匹配。一般是两表关联,关联条件中的字段是主键或唯一索引。关联字段确实是主键 post.id 

post 没法优化了,看看portal_category_post 怎么优化

Extra列

      Using temporary:使用了临时表保存中间结果。常见于排序order by和分组查询group by(最好优化)

      Using filesort:使用外部的索引排序,而不是按照表内的索引顺序进行读取。(一般需要优化)

key 列: NULL 没有使用索引

ref 列:Null  哪些列或常量被用于查找索引列上的值,因为没有使用索引,所以是null

 

参考 :mysql中explain详解 (type 取值及解释)  链接: https://www.jianshu.com/p/be1c86303c80

           mysql 索引优化   https://www.cnblogs.com/istitches/p/17153172.html   

标签:category,查询处理,索引,mysql,Using,post,id
From: https://www.cnblogs.com/djiz/p/17536866.html

相关文章

  • 一文彻底搞懂MySQL基础:B树和B+树的区别 转载 https://blog.csdn.net/a519640026/arti
    写在前面大家在面试的时候,肯定都会被问到MySql的知识,以下是面试场景:面试官:对于MySQL,你对他索引原理了解吗?我:了解面试官:MySQL的索引是用什么数据机构的?我:B+树面试官:为什么要用B+树,而不是B树?我:…面试官:用B+树作为MySql的索引结构,用什么好处?我:…B树和B+树是MySQL索引使用的数据结构......
  • MySQL常用知识点总结
    MySQL常用知识点总结参考地址:(https://maifile.cn/est/a3206887806899/pdf)【一】知识点总结【二】多表查询【三】常用函数【四】Excel数据清洗......
  • (MySQL)开启慢查询日志
    MySQL的慢查询日志默认没有开启,我们可以查看一下系统变量slow_query_log。showvariableslike'slow_query_log';修改/etc/my.ini如果要开启慢查询日志,需要在MySQL的配置文件(E:\ProgramData\MySQL\MySQLServer8.0\my.ini)中配置如下信息:#开启MySQL慢日志查询开关slow_......
  • 一次删除mysql中多个表 的方法
     需要一次性删除大量满足特定条件的表名(一般是表名称满足某些关键字)1、首先生成删除drop语句2、执行语句  mysql-uroot-p1111usedb1;--查询构建批量删除表语句(根据数据库中的表名称模糊查询)selectconcat('droptables',TABLE_NAME,';')asdroptablefr......
  • Mysql8.0配置Mysql主从复制GTID复制和延迟从库应用
    一、Mysql主从复制1、Mysql主从复制的作用和原理  1)主从复制的作用  防止单节点数据库故障数据丢失 增强数据的安全性和可靠性 2)原理  主Mysql开启二进制日志 从数据库监听主Mysql二进制日志变化 从复制二进制日志到本地 读取复制的二进制日志执行二进制日......
  • 百转千回!记一次MySQL主从同步异常的排查记录
    一、现象最近项目的测试环境遇到一个主备同步的问题:备库的同步线程停止了,无法同步主库的数据更改。备库报错如下:从库同步报错信息完整的错误信息:Relaylogreadfailure:Couldnotparserelaylogevententry.Thepossiblereasonsare:themaster'sbinarylogis......
  • Java技术分享:SpringBoot+mysql+...
    放个效果图: 准备项目首先在MySql控制台输入一下sql语句创建student数据库和student。createdatabsestudent;usestudent;CREATETABLE`student`(`stu_id`bigint(20)NOTNULL,`stu_name`varchar(45)DEFAULTNULL,`stu_sex`varchar(6)DEFAULTNUL......
  • docker-compose安装MySQL8并开启远程登录(1045)
    docker-compose安装MySQL8并开启远程登录(1045)编写docke-compose.yml文件vimdocker-compose.ymlversion:'3'services:mysql:image:mysql:8.0.31container_name:mysqlenvironment:#时区上海TZ:Asia/Shanghai#root密码M......
  • MySQL
    初识MySQLJavaEE:企业级Java开发Web前端(页面:展示,数据!)后台(连接点:连接数据库JDBC,连接前端(控制,控制视图跳转,和前端传输数据传递))数据库(存数据,Txt,Excel,Word)只会写代码,学好数据库,基本混饭吃;操作系统,数据结构与算法!当一个不错的程序员。离散数学,数字电路,体系结构,编译原理。+实战......
  • mysql-oracle查询用户信息切换
    mysql写法selecttable_name,table_comment,create_time,update_timefrominformation_schema.tableswheretable_schema=(selectdatabase())ANDtable_nameNOTLIKE'qrtz_%'ANDtable_nameNOTLIKE'gen_%'ANDtable_......