首先我们来说说性能是什么?性能,为完成某种任务所需要的时间度量,即响应时间。
性能优化的大致思路:首先使用将所有的查询记录到日志中,然后使用pt-query-digest工具生成系统级别的剖析报告,然后在去找到坏查询,使用show profile及其它explain工具。
接着我们来一步步说如何优化。
- 选择优化的数据类型
更小的通常更好
一般情况下尽可能使用正确存储数据的最小数据类型简单就好
简单数据类型通常需要更少的CPU周期,如时间用内建类型来存储,ip用整型来存储。尽量避免NULL
数据库对NULL处理比较复杂,进而少使用。
下一步我们来选择具体类型。
- 整数类型
MySQL中的几种整数类型按照存储空间由小到大分别是:TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT,分别使用8, 16, 24, 32, 64位存储空间。
其中整数类型可以选择UNSIGNED属性,表示不允许负值,但是有符号,无符号类型使用相同的存储空间,并且具有相同的性能,这个根据自己的实际情况使用。
但是整数计算一般使用64为BIGINT。
2.字符串类型
说道字符串类型,那么VARCHAR和CHAR是最主要的两种类型,两种的对比就不说了,大家应该知道。这里我们说一下使用场景。
varchar类型(变长)
字符串列的最大长度比平均长度打很多的时候。记住varchar需要1个或2个额外的字节记录字符串长度。
同时在使用时也要选定一个合适的长度,这一点还是很重要的。char类型(定长)
适合很短的字符串
其它类型,没有什么特别的地方,在需要使用的时候即可,用法不知道的童鞋自行去百度学习。
下节我们继续,从范式和反范式开始。