mysql数据类型与索引调优

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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值