MySQL数据库层的优化

MySQL数据库层的优化

优化方向

  • 数据表数据类型优化
  • 索引优化
  • SQL语句优化
  • 存储引擎的优化
  • 数据表结构设计的优化
  • 数据库服务器架构的优化
  1. 数据表数据类型优化
    • tinyint < smallint < bigint
      根据业务需求选择不同的数据类型;
      考虑空间的问题,考虑范围的问题;
  • char,varchar

varchar用于村粗可变字符串,它比定长类型节省时间

varchar使用1-2个额外字符记录字符串的长度,列长度小于255字节,使用1字节标识,否则用2个

varchar 长度,如果存储长度超过指定长度,会被截断;

char是定长,根据定义的字符串长度分配足够的存储空间

char会根据需求采用空格填充空间以方便比较

char适合存储固定或者所有值接近同一个长度

char长度超过设定长度,会被截断;

  • enum

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

IP地址的存储

  • 如果需要进行优化 可以使用ip2long和long2ip转换为整型,使用整型进行存储
  1. 索引的优化

索引的创建原则

  • 索引不是越多越好,在合适的字段上创建合适的索引;
  • 复合索引的前缀原则

索引的注意事项

  • 复合索引的索引原则
  • like查询%的问题
  • 全表扫描优化
  • or条件索引使用情况
  • 字符串类型索引失效的问题
  1. SQL语句优化

优化查询过程中的数据访问

  • 使用limit
  • 返回列不用*

优化长难句的查询语句

  • 变复杂为简单
  • 切分查询
  • 分解关联查询

优化特定类型的查询语句

  • 优化count();
  • 优化关联查询
  • 优化子查询
  • 优化Group bu和distinct
  • 优化limit和union
  1. 存储引擎的优化

量使用InnoDB存储引擎

  1. 数据表结构设计的优化
  • 分区操作

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

  • 分库分表

水平拆分
垂直拆分

  1. 数据库架构的优化
  • 主从复制
  • 双主热备
  • 读写分离
  • 负载均衡

MySQL的负载均衡

通过LVS的三种基本模式实现负载均衡
MyCat数据库中间件实现负载均衡

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值