发布于 2017-01-22 01:44:11 | 128 次阅读 | 评论: 0 | 来源: 网友投递

这里有新鲜出炉的Mysql教程,程序狗速度看过来!

Mysql关系型数据库管理系统

MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司。MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。


分析MySQL语句查询性能的方法除了使用 EXPLAIN 输出执行计划,还可以让MySQL记录下查询超过指定时间的语句,我们将超过指定时间的SQL语句查询称为“慢查询”

慢查询

首先,无论进行何种优化,开启慢查询都算是前置条件。慢查询机制,将记录过慢的查询语句(事件),从而为DB维护人员提供优化目标。

检查慢查询是否开启

通过show variables like 'slow_query_log'这条语句,可以找到慢查询的状态(On/Off)。

开启慢查询

本文使用的MySQL版本:MariaDB - 10.1.19,请注意,不同版本的MySQL存在差异。

在[mysqld]下加入:


[mysqld]
port= 3306

slow-query-log=1 # 慢查询:确认开启
slow-query-log-file="D:/xampp/mysql/log/mysql-slow.log" # 慢查询:日志文件及路径
long_query_time = 5 # 慢查询:指定超过5s仍未完成的语句,为执行过慢的语句

优化步骤

观察日志,锁定需要优化的目标语句。注意SQL的设置,譬如:SQL_NO_CACHE

关注复杂语句写法。复杂语句本身具备高自由度,再加上SQL语法的特殊性,导致了不同的写法的同功能复杂语句,可能具备云泥之别的效率。

明确应用场景,尽管我们在各种场合都有原则,但实际上,如果能够明确应用场景,我们能够针对当前情况,做出本地化的高效优化。

无法优化的语句,当我们通过上述两种方法,以及更多未被本文提及的优化方法之后,可能还是会面对优化失败的情况。业务层面不做出修正的话,数据层面的确是无力可使。

结语

当打出“无法优化”的时候,不禁想到了我所喜爱的游戏设计行业。

如果你了解一二,就会发现,游戏设计中,其实有相当多的优秀设计,但大多数都困窘于当时当地的技术水平,而无法实现多彩纷呈的游戏设计。

也还记得去年做UI的朋友跟我吐槽:我就怕我设计的出来,很炫酷或者很人文,可前端根本实现不了那种设计。



最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务