随笔分类 - mysql
摘要:通常在优化SQL查询的时候,我们都会使用explain分析SQL执行计划,通常来说当用到组合索引的时候我们如何判断索引完全用上呢?当然高手看看表结构及SQL语句就知道到底用到了几个字段,对于不熟悉的同学呢?我们还是可以看看key_len的长度,当然这个计算还是有点复杂的,不过在你看过我这篇博客以后,
阅读全文
摘要:explain语法有两种用法: 1.EXPLAIN tbl_name 2.EXPLAIN [EXTENDED] SELECT select_options为了更好的说明它,我们需要建两张表,下面的语句用于创建一张测试用的订单表: CREATE TABLE `t_order` ( `order_id`
阅读全文
摘要:深入理解 index merge 是使用索引进行优化的重要基础之一。理解了 index merge 技术,我们才知道应该如何在表上建立索引。1. 为什么会有index merge我们的 where 中可能有多个条件(或者join)涉及到多个字段,它们之间进行 AND 或者 OR,那么此时就有可能会使
阅读全文
摘要:一、BTree索引 注:名叫btree索引,大的方面看,都用的平衡树,但具体的实现上,各引擎稍有不同,比如,严格地说,NDB引擎使用的是T-tree,Myisam和innodb中默认用B-tree索引。 抽象来讲,Btree可以理解为“排好序的快速查找结构”。 btree索引的常见误区: 1、在wh
阅读全文
摘要:列类型选择原则: 字段类型优先级 长度够用就行 尽量避免使用null 1、字段类型优先级 整型>date,time>enum,char>varchar>blog,text 列的特点分析: 整型:定长,没有国家/地区之分,没有字符集的差异 比如tinyint 1,2,3,4,5 < > char(1)
阅读全文
摘要:建表三大原则: 定长和变长分离 常用字段和不常用字段分离 使用冗余字段或冗余表 1、定长与变长分离 如 id int,占4个字节,char(4)占4个字符长度,也是定长,time 即每一个单元值占的字节是固定的。在磁盘上查找时,由于每一行长度固定,比如长度为10000,查下一条时只需查+10001位
阅读全文
摘要:CHAR和VARCHAR类型类似,都用来存储字符串,但它们“保存”和“检索”的方式不同。CHAR属于“固定长度”的字符串,而VARCHAR属于“可变长度”的字符类型。 下表显示了将各种字符串值保存到CHAR(4)和VARCHAR(4)列后的结果,说明了CHAR和VARCHAR之间的差别。 CHAR和
阅读全文
摘要:首先说明一下MySQL的版本:mysql> select version();+ +| version() |+ +| 5.7.17 |+ +1 row in set (0.00 sec)表结构:mysql> desc test;+ + + + + + +| Field | Type | Null
阅读全文
摘要:在日常开发中,使用到的数据表经常都会有索引,这些索引可能是开发人员/DBA建表时创建的,也可能是在使用过程中新增的。合理的使用索引,可以加快数据库查询速度。然而,在实际开发工作中,会出现有些sql语句执行时不会使用索引、而使用了全表扫描的情况,造成执行速度慢的问题。下面我列举两种比较典型的场景: 场
阅读全文

浙公网安备 33010602011771号