优化方向
数据表数据类型优化
字段使用什么样的数据类型更合适
字段使用什么样的数据类型性能更快
tinyint(0-255)、smallint(几百几千)、bigint(非常达的数)
考虑空间的问题,考虑范围的问题,没有负数要加上无符号
char、varchar
存储字符串长度是否固定
enum
特定、固定的分类可以使用enum存储效率更快
IP地址的存储
使用整形存储;使用ip2long转换成整形,取出的时候使用long2ip转换成字符串的ip
索引优化
建立合适的索引
索引在什么场景下效率更高
索引创建原则
索引不是越多越好,在合适的字段上创建合适的索引(在where的列上创建索引)
复合索引的前缀原则
索引创建注意事项
复合索引的前缀原则
like查询%的问题(%在前like字段的索引会失效)
全表扫描的优化
or条件索引使用情况(or前面的字段有索引后面的没有则索引失效)
字符串类型索引失效的问题(字符串中存的是个整型,在查询的时候用整型不加引号索引会失效)
sql语句优化
优化查询过程中的数据访问
使用limit
返回列不用*
优化长难的查询语句
变复杂为简单
切分查询(查询很多的数据拆分查询减少数据库的压力)
优化特定类型的查询语句
优化count()(没有where条件的count时最快的)
优化关联语句(针对)
优化子查询(尽量不使用子查询)
优化Group by和distinct
优化limit和union
存储引擎优化
尽量使用Innodb引擎
数据表结构设计的优化
分区操作
分裤分表
数据库服务器架构的优化
主从复制
读写分离
双主热备
负载均衡