mysql优化之列选取原则
1、字段类型优先级:
整形 > date、time > enum、char 、varchar > blob
原因:整形、time运算快,节省空间。
char、varchar要考虑字符集的转换与排序时的校对集,速度慢。
blob无法使用内存临时表。
2、够用就行,不要慷慨(如smallint、varchar(N))。
原因:大的字段浪费内存,影响速度。
以varchar(10),varchar(300)存储的内容相同,但在表联查时,varchar(300)要花更多的内存。
3、尽量避免用NULL()
原因:NULL不利于索引,要用特殊字节来标注。
在磁盘上占据的空间其实更大。
Enum列的说明
1、enum列在内部是用整形来储存的。
2、enum列与enum列相关联速度最快。
3、enum列比(var)char的弱势 --> 在碰到与char关联时,要转化,要花时间。
4、优势在于,当char非常长时,enum依然是整形固定长度。
当查询的数据量越大时,enum的优势越明显。
5、enum与char/varchar关联,因为要转化,速度要比enum -> enum,char->char要慢。
但有时也这样用,就是在数据量特别大时,可以节省 IO。
我在努力改变自己,未来我要改变世界!
posted on 2020-08-11 22:09 金麟岂是池中物—潜龙 阅读(70) 评论(0) 收藏 举报
浙公网安备 33010602011771号