码迷,mamicode.com
首页 > 数据库 > 详细

mysql优化和索引

时间:2017-11-08 19:42:23      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:索引   mysql优化   

  • 表的优化

1.定长与变长分离

    如 int,char(4),time核心且常用字段,建成定长,放在一张表;

    而varchar,text,blob这种变长字段适合单放一张表,用主键与核心表关联。

2.常用字段和不常用字段要分离

3.在 1 对多需要关联统计的字段上,添加冗余字段。


  • 列类型选择原则

1.字段类型优先级  整型 > date,time > enum,char > varchar > blob,text

2.够用就行,不要慷慨,大的字段浪费内存,影响速度。

3.尽量避免用NULL,NULL不利于索引,需要特殊的字节来标注。


  • Enum列的说明

1.enum列在内部是用整型来存储的

2.enum列和enum列想关联速度最快

3.enum列比(var)char的弱势--在碰到与char关联时,要转化,要花时间

4.优势---当char非常长时,enum依然是整型固定长度,当查询的数据量越大时。enum的优势越明显。




索引提高查询的速度、提高排序的速度、提高分组的速度


  • 聚簇索引和非聚簇索引

聚簇索引:btree 

          innodb引擎,索引和数据是在一块的,

          innodb直接在主键索引的树中,储存行的数据,(既存储了主键值,又存储了行数据)。

          innodb次索引指向对主键的引用。

          优点:根据主键查询条目比较少时,不用回行(数据就在主键节点下)。

          缺点:如果碰到不规则数据插入时,造成频繁的页分裂。

非聚簇索引:btree 

            myisam引擎, 索引和数据是分开的,

   myisam索引指向行在磁盘上的位置

            myisam中,主索引和次索引都指向物理行(磁盘位置)。


mysql优化和索引

标签:索引   mysql优化   

原文地址:http://houss.blog.51cto.com/6287233/1980041

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!