标签:img orderby 占用 href margin 案例 还原 有趣的 csdn
为什么当 执行select较多时应当使用mysiam引擎呢?尤其是在有索引的情况下本篇章依托一个实际应用,分析一下。
1.有主键id,联合索引(id,ver);用前者当orderby查询慢,用后者orderby查询会很快;2.每一行的数据量挺大
肯定用的不是mysiam引擎,若是的话用这两个索引查询,其实速度是差不多的,因为索引上存的都是一个物理行的地址嘛,实际占有的数据量又不大。但如果是innodb就不一样了,它的主索引下边可是拖家带口存放着该行的所有数据的。
1.主因:用的innodb引擎
是聚簇索引,主键ID索引还下拖家带口的挂着该行的其他数据,导致沿着ID排序时,要跨过好多小块才能查询遍历每个ID;(而mysiam下头没那么多数据,跨过相同的数据块会更快,遍历更多的行)
2.从因:有几个字段下的数据量比较大,即拖家带口带的人还比较多,数据量比较大。每行数据量大,在磁盘存储时占用的块儿也多3. 当时mysiam引擎时不存在这个问题
当 执行select较多时,应当使用mysiam引擎,当执行 insert,update多时使用innodb引擎
更多结论请看:Mysql-索引总结
显然,时间相差不太大,都是一个量级的。
显然,时间相差不太大,都是一个量级的。
原因:两个语句都用到了聚簇索引,只是主键的跨块儿太多,而联合索引为次级索引,下边无数据,块儿少,遍历快。
时间排序结论:innodb.主索引 > innodb.次索引 > mysiam
1.主因,沿着主键做order by排序,查询时会跨页很多块,时间增加2.如果没有几个长的char字段,数据块也不大,也就不会造成这么大的差别,
比如,删除表中str1,str2,str3字段,查询时间也会大大减少,差异不明显
标签:img orderby 占用 href margin 案例 还原 有趣的 csdn
原文地址:http://blog.csdn.net/ty_hf/article/details/53575118