深入MYSQL随笔
(1)查询生命周期:
从客户端到服务器,然后在服务器上进行解析,生成执行计划,执行,并返回给客户端。
执行是整个生命周期中,最重要的阶段。
(2)慢查询基础:
优化数据访问,减少访问的数据行。
(3)查询不需要的记录:mysql有时不是仅仅去返回只需要的数据,而是现将所有的数据先返回
客户端再抛弃绝大部分数据。
总是取出全部的列:select *
重复查询相同的数据:反复调用同一个sql 可以先把结果缓存起来。
(4)衡量查询开销的指标
响应时间:服务时间+排队时间
扫描的行数:
返回的行数:通常下扫描和返回的行数相同,但是在关联查询的条件下
则不同。
(5)索引让Mysql以最高效、扫描行数最小的方式找到需要的记录。
(6)尽量选择一个大查询去替换多个实现同样效果的小查询。
(7)分解关联查询:
让缓存的效率更高;
将查询分解后,执行单个查询可以减少锁的竞争;
在应用层做关联,容易对数据库进行拆分;
可以减少冗余记录的查询;
相当于实现了哈希关联,而不是使用mysql的嵌套查询
(8)展示各个线程的查询状态:
show FULL PROCESSLIST
sleep:线程正在等待客户端发送的新请求
Query:线程正在执行查询或者正在将结果发送给客户端
Locked:线程正在等待表锁
Analyzing and statistics:收集存储引擎的统计信息,并生成查询的执行计划
copying to tmp table:将结果集返回到临时表
sorting result:排序结果
sending data:线程在多个状态间传送数据,在生成结果集、向客户端返回数据。
(9)显示线程的查询的成本
show STATUS like 'Last_query_cost'
(10)查询流程示意图:

深入MYSQL随笔的更多相关文章
- ORACLE 迁移MYSQL 随笔
1.把服务器上的ORALCE 数据库导成DMP,然后导入本机的临时库 2.先把ORACLE 表中的DATE 改为TIMESTAMP; a.先建立个表 create table type_table_i ...
- mysql随笔
MySQL查询优化器--非SPJ的优化 MySQL查询优化器--非SPJ优化(一)--GROUPBY优化 http://blog.163.com/li_hx/blog/static/183991413 ...
- MySQL随笔(2)
索引本身是一个独立的存储单位,在该单位里边有记录着数据表某个字段和字段对应的物理空间.索引内部有算法支持,可以说查询速度非常快. 聚簇索引;聚簇索引不是单独的索引而是一种数据存储方式;聚簇索引的优点是 ...
- MySQL随笔(1)
mysql是一种关系型数据库,和SQL ,oracle一样是较为常用的关系型数据库,属于oracle旗下的产品,在web应用方面,MySQL是最好的RDBMS(relational database ...
- mysql随笔系列-1
MySQL数据库管理 本人实验所用的MySQL数据库版本:5.5.56-MariaDB MariaDB Server 操作系统:centos7.5 1.创建数据库 MariaDB [(none)]& ...
- Mysql 随笔记录
Soundex 声音相似的 select * from demos where Soundex('title') = Soundex('标示'); Concat 拼接语句 select concat( ...
- MYSQL随笔心得1
cmd链接数据库命令: 输入密码进入 显示全部的数据库: 退出服务器连接,还有/p quit 非关系型数据库:NOSQL,not only sql 不仅仅是SQL 代表:redis,mongodb
- mysql 随笔
(select GROUP_CONCAT(car_brand_name separator ',') carBrandName,supplier_id from ycej_supplier_carbr ...
- VS2010/VS2013项目创建及通过ADO.NET连接mysql/sql server步骤(VS2013连接成功步骤见上一篇随笔)
本随笔主要是对初学者通过ADO.NET连接数据库的步骤(刚开始我也诸多不顺,所以总结下,让初学者熟悉步骤) 1.打开VS新建一个项目(这里的VS版本不限,建项目都是一样的步骤) VS2010版本如图: ...
随机推荐
- java设计模式3.建造者模式、原型模式
建造者模式 一个产品常有不同的组成部分作为产品的零件,有些情况下,一个对象会有一些重要的性质,在它们没有恰当的值之前,对象不能作为一个完整的产品使用,有些时候,一个对象的一些性质必须按照某个顺序赋值才 ...
- CodeForces 669 E Little Artem and Time Machine CDQ分治
题目传送门 题意:现在有3种操作, 1 t x 在t秒往multiset里面插入一个x 2 t x 在t秒从multiset里面删除一个x 3 t x 在t秒查询multiset里面有多少x 事情是按 ...
- lightoj 1037 - Agent 47(状压dp)
题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1037 #include <iostream> #include & ...
- POJ 2230 Watchcow 欧拉图
Watchcow Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 8800 Accepted: 3832 Specia ...
- 201871010134-周英杰《面向对象程序设计(java)》第一周学习总结
项目 内容 java https://www.cnblogs.com/nwnu-daizh/ 任课老师博客下 https://www.cnblogs.com/nwnu-daizh/p/11435127 ...
- Spring boot 集成 Druid 数据源
Druid是阿里开源的一个JDBC应用组件,其中包括三部分: DruidDriver:代理Driver,能够提供基于Filter-Chain模式的插件体系. DruidDataSource:高效可管理 ...
- SpringCloud入门[转]
原文链接 一. 网站的架构演变 网络架构由最开始的三层mvc渐渐演变.传统的三层架构后来在互联网公司让几百人几千人同时开发一个项目已经变得不可行,并且会产生代码冲突的问题.基于SOA面向服务开 ...
- .Net基础篇_学习笔记_第四天_switch-case
swith-case 用来处理多条件的定值的判断. 语法: switch(变量或者表达式的值) { case 值1:要执行的代码: break: case 值2:要执行的代码: break: case ...
- AirFlow常用命令
airflow常用命令如下所示: airflow test dag_id task_id execution_date 测试task 示例: airflow test example_hello_wo ...
- airflow使用本地时区
在airflow中使用的时间是utc时间,而更多时候我们希望的是使用本地时间,于是在定义airflow定时任务的时候,涉及到了时间的转换. 1.python中本地时间和utc时间的转换 查看国内可 ...