7.MySQL的性能优化

我们说到性能调优,大部分时候想要实现的目标是让我们的查询更快。一个查询的动作又是由很多个环节组成的,每个环节都会消耗时间,我在mysql专题讲 SQL 语句的执行流程的时候已经分析过了。我们要减少查询所消耗的时间,就要从每一个环节入手!

sql执行流程图

所以我们优化的思路:这个思路从下到上与执行流程相对应,但是我们实际在优化的时候的优先级一定是从上到下!(解析器,词法和语法分析,主要保证语句的正确性,语句不出错就没问题。由 Sever自己处理,跳过优化器——SQL 语句分析与优化)

优化思路

1.连接——MySQL配置优化

这个优化主要是解决连接数不够的问题,我们主要从服务端和客户端俩个方面来解决!

服务端:我们可以增加服务端的可用连接数。

客户端:引入链接池

2.缓存——数据库架构优化

1)引入第三放缓存:redis

2)主从复制

3)分库分表

3.优化器——SQL 语句分析与优化

1)慢查询日志 slow query log

2)SHOW PROFILE

3)EXPLAIN 执行计划

4)SQL与索引优化

4.存储引擎优化

1)存储引擎的选择:为不同的业务表选择不同的存储引擎,例如:查询插入操作多的业务表,用 MyISAM。临时数据用 Memeroy。常规的并发大更新多的表用 InnoDB。

2)分表:举例-->交易历史表:在年底为下一年度建立 12 个分区,每个月一个分区。渠道交易表:分成当日表;当月表;历史表,历史表再做分区。

3)字段定义:1.整数类型 2.字符类型 3.非空 4.不要用外键、触发器、视图 5.大文件存储 6.表拆分

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容