MySQL调优学习笔记(三、数据库优化)

目录:

  • 数据类型的优化
  • scheme设计
  • 总结

数据类型的优化

关于数据类型的优化主要分为三个点:

1、选择更小的数据类型性能更好:小的数据类型占用磁盘、CPU和内存更少,处理时需要的CPU周期也更少。

2、简单的数据类型性能更好:比如整形、datetime相对于字符类型就更好,因为字符集的校对规则更为复杂。

如,用整形存储ip地址

  • select INET_ATON('192.168.110.113');
  • select INET_NTOA(3232263793);

3、尽量避免NULL:对于MySQL来说,可包含NULL的列更难优化,因为可为NULL的列使得索引、索引统计和值比较都更为复杂。

scheme设计

1、太多的列不好:MySQL需要在服务器和存储引擎间通过行缓冲格式来拷贝数据,然后转换成各个列,过多的列会使转换的代价过高。

2、过多的关联查询不好。

3、不要滥用枚举类型:枚举虽好用,但在新增枚举的情况下都需要做ALTER TABLE操作,会锁表。

总结

1、尽量避免过度设计,例如会导致极其复杂查询的schema设计,或者有很多列的表设计。

2、使用小而简单的合适数据类型,除非真实数据模型中有确切的需要,否则应该尽可能地避免使用NULL值

3、尽量使用相同的数据类型存储相似或相关的值,尤其是需要在关联条件中使用的列。

4、注意可变长字符串,其在临时表和排序时可能导致悲观的按最大长度分配内存

5、尽量使用整形定义标识列

6、避免使用MySQL已经废弃的特性,例如指定浮点数的精度等。

7、小心使用ENUM和SET,虽然他们用起来很方便,但是不要滥用,否则有可能变成陷阱。

posted @ 2020-02-16 20:27  被猪附身的人  阅读(120)  评论(0编辑  收藏  举报