mysql数据库优化相关知识
数据表数据类型优化
- tinyint、 smallint、 bigint 考虑空间的问题,考虑范围的问题
- char、varchar
- enum 特定、固定的分类可以使用enum存储,效率更快
- ip地址 ip2long() 转成长整型存储
索引优化
索引创建原则
- 索引不是越多越好,在合适的字段上创建合适的索引
- 复合索引的前缀原则
索引注意事项
- 复合索引的前缀原则
- like查询%的问题
- 全表扫描优化
- or条件索引使用情况
- 字符串类型索引失效的问题
SQL语句的优化
优化查询过程中的数据访问
- 使用 Limit
- 返回列不用*
优化长难句的查询语句
- 变复杂为简单
- 切分查询
- 分解关联查询
优化特定类型的查询语句
- 优化 count()
- 优化关联查询
- 优化子查询
- 优化 Group by和 distinct
- 优化 limit和 union
存储引擎的优化
尽量使用 Inno DB存储引擎
数据表结构设计的优化
分区操作
- 通过特定的策略对数据表进行物理拆分
- 对用户透明
- partition by
分库分表
- 水平拆分
- 垂直拆分
数据库服务器架构的优化
- 主从复制
- 读写分离
- 双主热备
- 负载均衡
负载均衡
- 通过LVS的三种基本模式实现负载均衡
- MyCat数据库中间件实现负载均衡