目录
一,从设计上优化
1,合理的进行数据库设计,通过规范化设计可以避免数据冗余,也可以适当的反规范化设计提高查询性能.
2, 选择合适的数据类型,确保使用最合适的数据类型来存储数据,避免使用过大或者复杂的数据类型.比如控制varchar的长度,比如可以选择用enum枚举类型来代替简单的列类型,可以选择用tinyint代替int或者bigint等.
3,每一个表推荐一个主键约束.建立主键的同时其实也建立了主键索引.
4, 表和表之间推荐建立外键约束,保持数据的完整性和一致性,同时外键也可以被mysql的优化器用来优化查询.
5,批量插入数据的时候,用values而非value.尽量用一条insert into语句插入多条数据,而非一条一条的插入.
二,从查询上优化
1,避免使用select * .查询我们需求的列,而非*全部,减少数据的传输量.
2,避免使用子查询,用连接来代替子查询,表与表之间的连接通常建立的有外键关系,而外键建立的同时也具备了外键索引功能.
3,使用where子句 尽早的过滤不需要的数据,减少数据的处理量.
4,使用limit检索,限制结果集,一次只提取少量数量,提高查询效率.
5,当遇到查询非常慢的时候,可以使用explain分析查询命令,来执行计划.排查效率瓶颈,进一步优化.
6,使用视图查询.
三,从索引上优化
1.为经常作为查询条件的列创建索引.
2,当查询条件涉及到多个列的时候,可以创建复合索引,组合索引遵循最左原则.
3,编写查询语句的时候,精准的命中索引,提高查询效率.
4,定期删除无用索引,清理存储空间和提高新表性能.
四,从存储上优化
1,提高mysql缓存配置参数,比如InnoDB存储引擎的缓存池大小,和查询缓存大小.以适应实际工作的负载.
2,启动慢查询日志,并定期分析慢查询日志,找出并优化执行时间较长的sql查询语句.
3,选择合适的存储引擎,在不需要事务和外键的事后可以选择使用mysam引擎,在需要事务和外键的时候选择InnoDB引擎.
4,使用更快的存储设备,比如固态硬盘代替传统的机械硬盘.
5,给mysql服务器分配更多的内存,可以减少磁盘I/O操作,提高性能.
标签:十三,使用,外键,查询,索引,mysql,优化 From: https://blog.csdn.net/qq_55006020/article/details/140284650