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

  • 相关阅读:
    借用构造函数实现继承
    原型链
    创建对象 之 组合使用构造函数模式和原型模式
    6.原型对象的问题
    Spring MVC
    AOP
    谈谈对Spring IOC的理解
    Mybatis3.x与Spring4.x整合(转)
    手把手Maven搭建SpringMVC+Spring+MyBatis框架(超级详细版)
    Appweb写法
  • 原文地址:https://www.cnblogs.com/bzfsdr/p/12318233.html
Copyright © 2011-2022 走看看