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.表拆分

你可能感兴趣的:(7.MySQL的性能优化)