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)    收藏  举报

导航