mysql列类型选择

来源:互联网 发布:云梦网络怎么样 编辑:程序博客网 时间:2024/05/16 17:06

我们前面通过show processlist观察了mysql的进程状态,找出有问题的SQL, 并且学习了利用 profiling分析SQL语句。
另外我们还可以开启慢查询,来查看执行很忙的SQL。

如果语句等待时间长,就调优服务器参数(如缓冲区,线程数等);
如果语句执行时间长,可能是:表关联多、索引没有优化、语句没有优化

现在我们可以来学习具体的优化措施,首选来学习 列类型选择

列选择的原则:

1.字段类型优先级 int > date,time > char,varchar > blob
原因:int、time运算快,节省空间;char/varchar要考虑字符集的转换与排序时的校对集,速度慢;blob无法使用内存临时表。
2.够用就行,不要慷慨
原因:大的字段浪费内存,影响速度
3.尽量避免用null
原因:null不利于索引,要用特殊字节来标准,在磁盘上占据的空间其实更大

enum列的说明

1.enum列在内部是用整型来存储的
2.enum列与enum列相关联速度最快
3.enum列比 varchar 的弱势:在碰到与varchar关联时要转化,要花时间
4.优势在于,当char非常长时,enum依然是整型固定长度
总结:enum和enum类型关联速度比较快

0 0