MySQL服务器性能剖析(一)

首先我们来说说性能是什么?性能,为完成某种任务所需要的时间度量,即响应时间。
性能优化的大致思路:首先使用将所有的查询记录到日志中,然后使用pt-query-digest工具生成系统级别的剖析报告,然后在去找到坏查询,使用show profile及其它explain工具。

接着我们来一步步说如何优化。

  1. 选择优化的数据类型
  • 更小的通常更好
    一般情况下尽可能使用正确存储数据的最小数据类型

  • 简单就好
    简单数据类型通常需要更少的CPU周期,如时间用内建类型来存储,ip用整型来存储。

  • 尽量避免NULL
    数据库对NULL处理比较复杂,进而少使用。

下一步我们来选择具体类型。

  1. 整数类型
    MySQL中的几种整数类型按照存储空间由小到大分别是:TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT,分别使用8, 16, 24, 32, 64位存储空间。
    其中整数类型可以选择UNSIGNED属性,表示不允许负值,但是有符号,无符号类型使用相同的存储空间,并且具有相同的性能,这个根据自己的实际情况使用。
    但是整数计算一般使用64为BIGINT。

2.字符串类型
说道字符串类型,那么VARCHAR和CHAR是最主要的两种类型,两种的对比就不说了,大家应该知道。这里我们说一下使用场景。

  • varchar类型(变长)
    字符串列的最大长度比平均长度打很多的时候。记住varchar需要1个或2个额外的字节记录字符串长度。
    同时在使用时也要选定一个合适的长度,这一点还是很重要的。

  • char类型(定长)
    适合很短的字符串

其它类型,没有什么特别的地方,在需要使用的时候即可,用法不知道的童鞋自行去百度学习。
下节我们继续,从范式和反范式开始。

你可能感兴趣的:(MySQL服务器性能剖析(一))