深入理解mysql

1.表的优化和列类型选择

表的优化

1,定长和变长分离

2,常用字段和不常用字段分离(不常用字段单独建表)

3,添加冗余字段提高查询(反范式查询(数据统计))

列类型选择

1,字段类型选择优先级 

整形 > date, time(定长) > enum(枚举,内部用整形存储), char(定长,考虑字符集和校对集) > varchar > blob,text (int直接排序,字符串需要按照类型和校对规则排序,所以慢)

2,够用就行(大的字段浪费内存,影响速度)

3,尽量避免选择NULL(不利于索引优化,用特殊的字节来标注)


2,索引优化部分  (增加查询速度,排序速度,分组速度)

1,索引类型

1,btree索引(范围查询方便)

二分算法(tree)

2,hash索引(hash快,但是有使用限制,hash算法),只能在memory表使用,hash更快

1,存储数据不规律

2,无法对范围查询进行优化(hash没有规律)

3,无法对字段前缀进行优化

4,排序无法优化


3,btree 索引常年误区(给常用字段全部加索引,独立索引同时只能使用一个,使用联合索引提升效率)

多列加索引时遵循左前缀原则,同时存在多个索引时,索引满足原理是一个一个从左向右满足,最左边不存在时,索引不使用

explain来分析mysql 语句看语句用的索引


3-1: 聚簇索引(innodb) 和 非聚簇索引(myisam)

非聚簇索引(myisam):分文件存储 数据文件./ 索引文件 -》 指向行在磁盘上的位置

 聚簇索引(innodb) =》指向一个对主键的引用(数据在叶子底下)

乱序插入数据时,会分裂叶子,导致mysql运行速度比顺序插入慢,取数据时还是按照顺序返回



是是

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值