第十三章《优化》

第十三章《优化》

查询优化:
1.show status like ‘slow_queries’;

2.分析查询语句:
explain/desc select 语句

mysql> explain select * from user1;
±—±————±——±—–±————–±—–±——–±—–±—–±——+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
±—±————±——±—–±————–±—–±——–±—–±—–±——+
| 1 | SIMPLE | user1 | ALL | NULL | NULL | NULL | NULL | 3 | |
±—±————±——±—–±————–±—–±——–±—–±—–±——+
1 row in set (0.00 sec)

id select 语句的id号
select_type:查询语句的类型
simple:简单的查询语句
primary:主查询,最外层查询
union:连接查询
subquery:子查询

type:表示查询读取数据的方式;
const:表示只有一行数据匹配
system:该表时仅有一行数据的系统表;
eq_ref:使用到的索引时unique或者primary,子句使用了‘=’来对比索引列;
ref:使用了索引,但是索引不是unique或者primary key;
ref_or_null:mysql可以通过select语句来查询索引列包含null值的行
index_merge:使用到组合索引
range:范围查询的意思,只检索给定范围的行,子句当中‘<=’,’>=’.between
ALL:整个表进行遍历(没有使用索引)

特殊的查询语句:
1.使用like关键字的查询语句
like后面匹配字符串的第一个字符串是‘%’,即使查询的是索引,也不会使用索引;
2.子语句中有or关键字,只有or连接的两个字段都是索引字段才能使用索引;
3.select字段如果属于组合索引中的字段,我们必须使用组合索引中的最左边的索引字段,否则不适用索引;

库表结构的优化:
1.字段的数据类型
2.数据类型后面数据宽度
3.选择合适的存储引擎
4.分库分表
5.插入数据:
(1)alter table 表名 disable keys; 禁用索引
(2)禁用唯一性检查: set unique_checks=0;
(3)使用批量插入;

6.分析表
analyze table tablename
在这里插入图片描述
op:执行的操作是什么
Msg_type: 信息级别:status 正常状态 ,info信息,note注意,warning警告,error报错;
Msg_text:显示信息

检查表:
check table 表名

优化表:消除执行完删除或者更新命令后造成空间浪费
optimize table tablename

性能参数的优化:
cpu、内存、I/O优化等;
max_connections:set global max_connections=500M

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/101965.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 数据库自动化运维平台–自助DML

    数据库自动化运维平台–自助DML今天介绍下最近开发的一个平台,自助DML。什么是DML,就是平常执行的增删改查数据库操作。有人有疑问这不是程序访问的操作,为什么还要做一个平台操作这些呢,其实这种操作主要是开发需要线下修复数据的一种操作,不只是增删改,还有建表,建索引,添加字段等,这些操作开发一般会提给DBA协助操作数据库。可能你会觉得这些活能有多少,其实这种活真不少,我上家公司是电商互联网公司,大概有七八百个实例,每天的这种操作有近百个。处理近百个这种需求,基本上一个人一天就不用干别的了。虽说现在的公司实例少点,但每天的工作量还是很大,关

    2022年5月17日
    45
  • unix命令大全详解-完整版_command方式:「建议收藏」

    unix命令大全详解-完整版_command方式:「建议收藏」UNIX命令大全详解-完整版command方式:任何输入都会作为编辑命令,而不会出现在屏幕上,若输入错误则有“岬”的声音;任何输入都引起立即反映insert方式:任何输入的数据都置于编辑寄存器。在command方式下输入(I,a,A等),可进入in

    2022年5月6日
    41
  • 来谈谈Spring构造函数注入的循环依赖问题

    点击上方“全栈程序员社区”,星标公众号 重磅干货,第一时间送达 作者:服务端开发 blog.csdn.net/u010013573/article/details/90573901…

    2021年6月25日
    85
  • 2015年信息系统项目管理师真题_信息系统项目管理师题目

    2015年信息系统项目管理师真题_信息系统项目管理师题目【信息系统项目管理师】第五章项目范围管理(考点汇总篇)

    2022年9月22日
    2
  • ETL开发命名规范

    ETL开发命名规范命名规范1、模块名缩写、表面缩写2、一次性初始化的表:[库名].表名_INIT

    2022年5月18日
    36
  • 哈佛结构和冯·诺依曼结构的区别和联系_edsac是第一台冯诺依曼机吗

    哈佛结构和冯·诺依曼结构的区别和联系_edsac是第一台冯诺依曼机吗一、哈佛结构    哈佛结构(Harvardarchitecture)是一种将程序指令储存和数据储存分开的存储器结构。中央处理器首先到程序指令储存器中读取程序指令内容,解码后得到数据地址,再到相应的数据储存器中读取数据,并进行下一步的操作(通常是执行)。程序指令储存和数据储存分开,数据和指令的储存可以同时进行,可以使指令和数据有不同的数据宽度,如Microchip公司的PIC16芯…

    2022年9月27日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号