您的位置:首页 > 数据库 > MySQL

mysql数据类型与索引调优

2016-06-16 11:22 239 查看
varcha比固定长度占用更少存储空间,只占用需要空间,但是需要1字节保存长度

更小通常更好

简单就好,避免null

确定类型

使用enum代替字符串类型

innnodb存储引擎

事务性

外键

行级锁

多版本

按照主键聚集

所有索引包含主键列

优化的缓存:innodb把数据和内存缓存缓冲到缓存池 自动构建哈希索引

未压缩索引:索引没有使用前缀压缩,阻塞auto_increment;innodb使用表级锁产生新的auto_increment

没有缓存的count():myisam会把行数保存在表中 innodb中的count会全表扫描或索引扫描

可以适当的使用前缀索引

select count(disinct name) / count(*) from area

select count (disinct left(name, 3)) / count(*) from area

聚集索引

innodb索引保存了b-tree索引和数据行

覆盖索引

explain解释器的extra列看到using index

满足条件:

select 查询字段必须有索引全覆盖,不能在索引执行like操作

不要在选择性很差的列添加索引

check table

repair table

myisamchk

更新索引统计

1.analyze table test

show index

减少索引和数据碎片

myisam引擎: optimize table

innodb引擎:alter table engine =

表周期性创建

周期创建可以得到没有碎片和全排序索引高效表

drop table if exists area_new,area_old

create table area_new like area;

rename table area to area_old.area_new to area;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据 索引 缓存