zoukankan      html  css  js  c++  java
  • 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,虽然他们用起来很方便,但是不要滥用,否则有可能变成陷阱。

  • 相关阅读:
    Acwing 284.金字塔 (区间DP)
    Acwing 283.多边形 (区间DP)
    Acwing 277.饼干 (DP+排序不等式)
    Acwing 274.移动服务 (DP)
    Acwing 273.分级 (DP)
    Acwing 271.杨老师的照相排序 (DP)
    Acwing 272.最长公共上升子序列 (DP)
    Mybatis-缓存
    mybatis与spring整合
    mybatis-sql映射文件
  • 原文地址:https://www.cnblogs.com/bzfsdr/p/12318233.html
Copyright © 2011-2022 走看看