mysql数据库层的优化
穿透缓存层
优化方向
数据表数据类型优化
字段使用什么样的数据类型更合适
字段使用什么样的数据类型性能更快
tinyint smallint bigint 按需选择类型
考虑空间的问题 考虑范围的问题
char 手机号码 密码
varchar 姓名
存储字符串长度是否固定
enum
特定 固定的分类 可以使用 enum存储 效率更快
扩展性差 确定的东西
ip地址的存储 用整型来存储IP地址 通过php 函数 将ip转化成整型 ip_toolang langtoo_ip
索引优化
建立合适的索引
索引在什么场景下效率最高
索引创建原则
索引的注意事项
索引不是越多越好 ,在合适的字段上创建合适的索引 ( 索引会影响写操作-占用磁盘空间 提高查询操作效率) where列上索引
复合索引的前缀原则
like查询%的问题
全表扫描的优化
or条件索引使用情况
字符串类型索引失效的问题
sql语句的优化
优化查询过程中的数据访问
使用limit
返回列不用*
优化长难句的查询语句
变复杂为简单
切分查询
分解关联查询 有利于做数据层面的缓存
优化特定类型的查询语句
优化count()
优化关联查询
优化子查询
优化group by 和 distinct
优化 limit 和union
存储引擎的优化
尽量使用 innodb存储引擎
数据表结构设计的优化
分区操作
通过特定的策略对数据表进行物理拆分
对用户透明
partition by
分库分表
大数据量
水平拆分
垂直拆分
数据库服务器架构的优化
主从复制
读写分离
双主热备
使用mysql的 blog日志 中继日志 通过主库和从库blog 来回的交换 事件的传送
负载均衡
通过lvs的三种基本模式实现负载均衡 三种模式 net dl ibetween模式
mycat数据库中间件实现负载均衡 可靠性差与 lvs
优化方案
网友评论