Mysql数据库常见优化方向

Mysql数据库常见优化方向

数据表数据类型优化

  • 字段使用什么样的字段类型更合适

    tinyint smallint bigint

    考虑空间 范围

    char varchar

    enum 特定固定的分类可以使用enum存储 效率更快

    ip地址存储 使用整型存储IP

  • 字段使用什么样的字段类型性能更快

索引优化

​ 索引创建原则

​ 索引不是越多越好,在合适的字段上从创建合适的索引

​ 符合索引的前缀原则 依次生效

​ like查询%的问题

​ 全表扫描的优化

​ or 前有索引,后面没有索引,索引会失效

​ 字符串类型索引失效的问题,查询字符串要加“”

SQL语句优化

  • 优化查询过程中的数据访问
    • 使用limit
    • 不使用*
  • 优化长难句
    • 变复杂为简单
    • 切分查询
    • 分解关联查询
  • 优化特定类型的查询语句
    • 优化count()
    • 优化关联查询
    • 优化子查询
    • 优化group by 和 distinct
    • 优化limit和union

存储引擎的优化

InnoDB 支持事务,支持外键 支持

表结构设计优化

  • 分区操作

    • 通过特定的策略对数据表进行物理查封
    • 对用户透明
    • partition by
  • 分库分表

    • 水平拆分
  • 垂直拆分

数据库服务器架构优化

  • 主从复制
    • 日志
  • 读写分离
  • 双主热备
  • 负载均衡
    • LVS
    • MyCat