摘要: 通常在优化SQL查询的时候,我们都会使用explain分析SQL执行计划,通常来说当用到组合索引的时候我们如何判断索引完全用上呢?当然高手看看表结构及SQL语句就知道到底用到了几个字段,对于不熟悉的同学呢?我们还是可以看看key_len的长度,当然这个计算还是有点复杂的,不过在你看过我这篇博客以后, 阅读全文
posted @ 2017-07-29 15:32 hustzzl 阅读(182) 评论(0) 推荐(0) 编辑
摘要: explain语法有两种用法: 1.EXPLAIN tbl_name 2.EXPLAIN [EXTENDED] SELECT select_options为了更好的说明它,我们需要建两张表,下面的语句用于创建一张测试用的订单表: CREATE TABLE `t_order` ( `order_id` 阅读全文
posted @ 2017-07-29 15:29 hustzzl 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 深入理解 index merge 是使用索引进行优化的重要基础之一。理解了 index merge 技术,我们才知道应该如何在表上建立索引。1. 为什么会有index merge我们的 where 中可能有多个条件(或者join)涉及到多个字段,它们之间进行 AND 或者 OR,那么此时就有可能会使 阅读全文
posted @ 2017-07-29 15:27 hustzzl 阅读(380) 评论(0) 推荐(0) 编辑
摘要: 一、BTree索引 注:名叫btree索引,大的方面看,都用的平衡树,但具体的实现上,各引擎稍有不同,比如,严格地说,NDB引擎使用的是T-tree,Myisam和innodb中默认用B-tree索引。 抽象来讲,Btree可以理解为“排好序的快速查找结构”。 btree索引的常见误区: 1、在wh 阅读全文
posted @ 2017-07-29 15:25 hustzzl 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 列类型选择原则: 字段类型优先级 长度够用就行 尽量避免使用null 1、字段类型优先级 整型>date,time>enum,char>varchar>blog,text 列的特点分析: 整型:定长,没有国家/地区之分,没有字符集的差异 比如tinyint 1,2,3,4,5 < > char(1) 阅读全文
posted @ 2017-07-29 14:45 hustzzl 阅读(249) 评论(0) 推荐(0) 编辑
摘要: 建表三大原则: 定长和变长分离 常用字段和不常用字段分离 使用冗余字段或冗余表 1、定长与变长分离 如 id int,占4个字节,char(4)占4个字符长度,也是定长,time 即每一个单元值占的字节是固定的。在磁盘上查找时,由于每一行长度固定,比如长度为10000,查下一条时只需查+10001位 阅读全文
posted @ 2017-07-29 14:10 hustzzl 阅读(536) 评论(0) 推荐(0) 编辑