可以从以下几个方面对MySQL进行优化,
效果: SQL和索引 > 数据库表结构 > 系统配置 > 硬件
但成本从低到高。
1.SQL和索引优化
1.1SQL
1.1.1优化SQL语句的一般步骤:
①通过show status 命令了解各种SQL的执行效率,
show [session | global] status;
可以根据需要加上参数来显示session级(当前连接,默认)和global级(自数据库上次启动至今)的统计结果。
eg:
show status like 'Com_%';
显示当前连接所有统计参数的值。
Com_xxx表示每个xxx语句执行的次数,通常需要注意的是下面几个参数:
Com_select/Com_insert/Com_update/Com_delte。
②定位执行效率较低的SQL语句
·通过show processlist命令实时查看当前SQL的执行情况;
·通过慢查询日志(结束以后记录)定位出现的问题。
③通过explain 或 desc分析低效SQL的执行计划
select_type(simple/primary/union/subquery)/table/type/possible_keys/key/key_len/rows/extra
④通过show profile 分析SQL
show profile 能帮我们了解时间都耗费到哪里去了。
MySQL从5.0.37版本开始增加了show profile和show profiles语句的支持,
通过secect @have_profiling命令能够看到当前MySQL是否支持profile,
通过show profiles我们能够更清楚了解SQL执行的过程,
通过show profile for query我们能看到执行过程中线程的每个状态和消耗的时间。
⑤通过trace分析优化器如何选择执行计划
MySQL5.6提供