《高性能MySql》学习笔记 持续更新

1.尽量避免NULL
如果查询中包含可为NULL的列,对MySql来书更难优化。

2.浮点类型
无论使用float还是double,MySql使用double作为内部浮点计算

3.Decimal
对Decimal的计算需要额外的计算开销 可以考虑使用bigint代替Decimal,将单位变小

4.varchar(5)和varchar(200)存储’hellow’
他们的存储来显是一样的,但是varchar(200)会消耗更多的内存MySql通常会分配固定大小的内存块来保存
部值(内部临时表)

5.BLOB TEXT
Innodb使用外部存储区域进行存储,表中需要一个1~4字节存储一个指针,外部存储实际值

6枚举类型
表中存的是一个hash的索引值 是整数型 因此使用该类型会使表的大小减少

7.TIMESTAMP
特性:默认情况下,如果插入时没有指定第一个TIMESTAMP列的值,MySql则会设置这个列的值为当前时间,在插入一条记录时,MySql会默认更新第一个TIMESTAMP列的值,TIMESTAMP列默认NOT NULL 比DATATIME更高效

8.使用联合索引
更具MySql的特性,只能从左到右的使用联合索引,而且不能跳过缩影中的列,如果查询某个列是范围查询,
且该范围是数量有限的,可以使用对个等于条件来代替范围条件

9.hash索引只支持等值查询

10.索引优化
当出现服务器对多个索引做相交操作时(通常是多个and),通常意味着需要一个包含所有相关列的多列索
引,而不是多个独立的单列索引
当服务器需要对多个索引做联合操作时(通常是多个or),通常需要消耗大量CPU和内存资源在算法的缓存
、排序和合并操作上。特别是当其中有些索引的选择性不高。需要合并扫描返回的大量数据的时候

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值