燕十八MySQL优化学习笔记
观察 show status; 里面的这三个参数;Queries Threads_connected Threads_running
判断周期性变化
------------------------------------------------------------
mysql -uroot -e 'show processlist'
1.show processlist 获取sql语句
2.show profiles 检查sql语句
set profiling=1; 开启关闭 Query Profiler
show profiles 显示所有sql;
show profile for query 2 查看 Copying to tmp table 复制到临时表的时间过大,说明索引不对
show profile cpu for query 1; 查看cpu的消耗情况
show profile memory for query 1; 查看内存消耗
show profile block io,cpu for query 1; 查看io及cpu的消耗
reset query cache 清除缓存
-----------------------------------------------------------------
表优化,列类型选择
速度
int>date,time>char,varchar>blob
避免使用null
enum
------------------------------------------------------------------
btree 排好序 的快速索引
左前缀要求:从左到右连续使用,断了,后面的索引就不起左右
索引有关的主要是possible_keys,key,key_len这三项,
possible_keys是指可能会用到的索引,key是当前sql使用到的索引,key_len是索引的使用字节数\
extra
using temporary 使用了临时表
using filesort 额外的文件排序
----------------------------------------------------------------------
索引覆盖: 索引覆盖指 如果查询的列恰好是索引的一部分,那么查询只需要在索引文件上进行,不需要回行到磁盘上查询
explain extra: using index 用了索引覆盖
Innodb 是 聚簇索引
-------------------------------------------------------------------------------------
1:查询频繁 2:区分度高 3:长度小 4: 尽量能覆盖常用查询字段.
select count(distinct left(word,1))/count(*) from dict;
区分度和长度
crc32 伪哈希
------------------------------------------------------------------------------------
大数据分页 limit offset 并不是先跳过,再查询
而是,先查询,后跳过
limit 100W,10 是先把100W条取出来,然后跳过
1.select id,name from lx_com where id>1000000 limit 10; 数据没有删除过
(一般来说,大网站的数据都是不物理删除的,只做逻辑删除 ,比如 is_delete=1)
2.延迟关联
select id,name from lx_com inner join (select id from lx_com limit 5000000,10) as tmp using(id);
先用 索引覆盖 找出id,在找到对应id的值
--------------------------------------------------------------------------------
1.重复索引 一个列建立2个索引
alert table goods add index ck1(click_count);
alert table goods add index ck2(click_count);
ck1,ck2 重复索引
2.冗余索引
多个索引有重叠;
-------------------------------------------
慢的原因:
1.等待时间 IO,被锁,加连接数
2.执行时间(取出了多少行,扫描多少行)
explain
1.type:all表示最差,全表扫描,index 全部扫描索引,rang范围,ref 索引迅速定位
效率 all
燕十八MySQL优化学习笔记的更多相关文章
- 燕十八mysql笔记
mysql复习 一:复习前的准备 1:确认你已安装wamp 2:确认你已安装ecshop,并且ecshop的数据库名为shop 二 基础知识: 1.数据库的连接 mysql -u -p -h -u 用 ...
- mysql优化学习笔记
优化sql的一般步骤 通过show status了解各种sql的执行频率 定位执行效率低的sql语句 通过explain分析效率低的sql 通过show profile分析sql 通过trace分析优 ...
- 最全的MySQL基础【燕十八传世】
1.课前准备! 开启mysql服务:1).配置环境变量;2).net start mysql 将该sql文件导入到你的数据库中,以下所有操作都是基于该数据库表操作的!!! [此笔记是本人看着视频加上自 ...
- MySQL数据库学习笔记(十二)----开源工具DbUtils的使用(数据库的增删改查)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- MySQL数据库学习笔记(十)----JDBC事务处理、封装JDBC工具类
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- MySQL数据库学习笔记(九)----JDBC的ResultSet接口(查询操作)、PreparedStatement接口重构增删改查(含SQL注入的解释)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- 20155234 2016-2017-2第十周《Java学习笔记》学习总结
20155234第十周<Java学习笔记>学习总结 教材学习内容总结 网络编程 在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就是把数据发送到指定的位置,或者接收到指定 ...
- 基于【 MySql 】二 || mysql详细学习笔记
mysql重点学习笔记 /* Windows服务 */ -- 启动MySQL net start mysql -- 创建Windows服务 sc create mysql binPath= mysql ...
- 20145330第十周《Java学习笔记》
20145330第十周<Java学习笔记> 网络编程 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就是把数据发送到指定的位置,或者接收到指定的数据,这个就 ...
随机推荐
- 世界超强完美DIY 电子奇才五年全手工制作CPU
世界超强完美DIY 电子奇才五年全手工制作CPU 2015-07-08 极客范 (点击上方公众号,可快速关注我们) 在如今越来越靠程序化.流水线作业来完成生产的制造业中,想找一件手工打造的产品,真是越 ...
- Project Woosah Tu (五色土)
I bought this Raspberry Pi (model B) in spring 2013, I hadn't done too much with it except for some ...
- Android之QQ新用户注册界面1
还没到睡觉时间所以再加了一个界面... 问题: 1.下拉列表(因为还没看到这里...) 2.标题栏显示问题 3.按钮的 Enable 设置 .......... 以下是代码: 布局 fragment_ ...
- Notes of 大数据智能
资料 刘知远 等. 大数据智能:互联网时代的机器学习和自然语言处理技术. 北京:电子工业出版社. 2016. 1 深度学习--机器大脑的结构 深度学习(Deep Learning)的两个方面: 神经网 ...
- 最短路径问题——floyd算法
floyd算法和之前讲的bellman算法.dijkstra算法最大的不同在于它所处理的终于不再是单源问题了,floyd可以解决任何点到点之间的最短路径问题,个人觉得floyd是最简单最好用的一种算法 ...
- tomcat 7.0 之文件配置
- 基于OpenCV 的iOS开发
1.创建项目 2.https://sourceforge.net/projects/opencvlibrary/files/opencv-ios/2.4.13/opencv2.framework.zi ...
- Singly Linked List
Singly Linked List Singly linked list storage structure:typedef struct Node{ ElemType data; struct N ...
- 【jq】c#零基础学习之路(3)继承和虚方法
c#只能继承一个基类和多个接口(0+) 父类:Human: class Human { public virtual Move() { Console.WriteLine("Human的虚方 ...
- 学习css中得与惑
css的学习分享 所学的css知识看多,会看懂.这只是在实践中发现的问题: 一. ???h1比div还大 h1上下有边距 为什么浮动不了 (现不知道) 二. css写了 表现不出来.... ...