摘要: 排序可能发生2种情况: 1: 对于覆盖索引,直接在索引上查询时,就是有顺序的, using index 2: 先取出数据,形成临时表做filesort(文件排序,但文件可能在磁盘上,也可能在内存中) using filesort 我们的争取目标 取出来的数据本身就是有序的! 利用索引来排序. 重复索 阅读全文
posted @ 2017-09-21 14:50 Microtiger 阅读(375) 评论(0) 推荐(0)
摘要: 用limit offset ,时并不是先跳过再查询 而是 ,先查询,再跳过 limit 100w,10 先把100w取出来,然后跳过前100w行, 所以大数据分页用limit很慢 select id,name from lx_com 5000000,10 先查询出来5000000 select id 阅读全文
posted @ 2017-09-21 14:28 Microtiger 阅读(323) 评论(0) 推荐(0)
摘要: 理想的索引 1:查询频繁 2:区分度高 3:长度小 4: 尽量能覆盖常用查询字段. 1: 索引长度直接影响索引文件的大小,影响增删改的速度,并间接影响查询速度(占用内存多). 针对列中的值,从左往右截取部分,来建索引 1: 截的越短, 重复度越高,区分度越小, 索引效果越不好 2: 截的越长, 重复 阅读全文
posted @ 2017-09-20 15:32 Microtiger 阅读(153) 评论(0) 推荐(0)
摘要: select username,area,age from table where username='li' 通过索引找到username,在去磁盘找area,age select username from table where username='li' 这个用到了索引覆盖,索引中有user 阅读全文
posted @ 2017-09-20 13:41 Microtiger 阅读(264) 评论(0) 推荐(0)
摘要: 聚簇索引 优势: 根据主键查询条目比较少时,不用回行(数据就在主键节点下) 劣势: 如果碰到不规则数据插入时,造成频繁的页分裂. 1: innodb的buffer_page 很强大. 2: 聚簇索引的主键值,应尽量是连续增长的值,而不是要是随机值, (不要用随机字符串或UUID) 否则会造成大量的页 阅读全文
posted @ 2017-09-20 12:01 Microtiger 阅读(212) 评论(0) 推荐(0)
摘要: ”排好序的快速查找结构”. like , > ,< 范围查询,只是使用了索引的一半,联合索引的后半不会在使用 where order 里面从左往右查看是否索引有断的 index(c1,c2,c3,c4) where c1=x and c2=x and c4>x and c3=x 都用 where c 阅读全文
posted @ 2017-09-20 10:48 Microtiger 阅读(152) 评论(0) 推荐(0)
摘要: 列选择原则:1:字段类型优先级 整型 > date,time > enum,char>varchar > blob列的特点分析:整型: 定长,没有国家/地区之分,没有字符集的差异time定长,运算快,节省空间. 考虑时区,写sql时不方便 where > ‘2005-10-12’;enum: 能起来 阅读全文
posted @ 2017-09-15 18:05 Microtiger 阅读(146) 评论(0) 推荐(0)
摘要: show variables like '%profiling%'; 查看状态 set profiling = 1; 开启 reset query cache; 清空缓存 select * from admin; show profiles; show profile for query 2; sh 阅读全文
posted @ 2017-09-15 17:54 Microtiger 阅读(540) 评论(0) 推荐(0)
摘要: processlist.sh 记录数据库的状态 #!/bin/bash while true do mysql -uroot -pwangxiaohu -e 'show processlist\G'|grep State:|uniq -c|sort -rn >> proce.txt echo ' ' 阅读全文
posted @ 2017-09-15 17:25 Microtiger 阅读(261) 评论(0) 推荐(0)
摘要: 1.Group By 和 Having, Where ,Order by这些关键字是按照如下顺序进行执行的:Where, Group By, Having, Order by。 首先where将最原始记录中不满足条件的记录删除(所以应该在where语句中尽量的将不符合条件的记录筛选掉,这样可以减少分 阅读全文
posted @ 2017-09-05 09:15 Microtiger 阅读(10277) 评论(0) 推荐(2)