taoCMS是基于php+sqlite/mysql的国内最小(100Kb左右)的功能完善的CMS管理系统

MySQL 优化需要注意的几方面

2010-12-25
1、执行查询用户的权限设置
这第一条不知道以前你有没有注意过呢。俺官方手册的说法,用户的权限设置的越少,就越少减少权限授权的查询。相信这一条一定是对MySQL负载很高的情况下,会有比较明显的优化效果。建议,用户只设置SELECT权限。在写代码的时候,做到读/写用户分离,用不同的用户执行不同的操作。(个人理解,仅供参考)
2、利用MySQL自带的方法进行优化准备
A、测试语句执行时间的方法 (BENCHMARK):
B、查看索引利用情况及表链接情况(EXPLAIN):
这里说明了EXPLAIN的详细用法,http://www.9usb.net/200902/mysql-explain.html
C、查看表当前索引(SHOW INDEX):
1
SHOW INDEX FROM tbl_name;
3、WHERE条件的优化
MySQL WHERE条件的优化,除应该尽可能利用数据表的主键字段外,还应注意一下几点。
A、去除不必要的括号
如:((a AND b) AND c OR (((a AND b) AND (c AND d))))
优化为: (a AND b AND c) OR (a AND b AND c AND d)
B、常量重叠
如:(a<b AND b=c) AND a=5
优化为: b>5 AND b=c AND a=5
C、去除常量条件(由于常量重叠需要)
如:(B>=5 AND B=5) OR (B=6 AND 5=5) OR (B=7 AND 5=6)
优化为: B=5 OR B=6
D、索引使用的常数表达式仅计算一次。
4、限定查询范围。
下面是一些WHERE子句中有范围条件的查询的例子:
SELECT * FROM t1
WHERE key_col > 1
AND key_col < 10;
SELECT * FROM t1
WHERE key_col = 1
OR key_col IN (15,18,20);
SELECT * FROM t1
WHERE key_col LIKE 'ab%'
OR key_col BETWEEN 'bar' AND 'foo';
5、MySQL数据库结构优化原则
最基本的优化之一是使表在磁盘上占据的空间尽可能小。这能给出巨大的改进,因为磁盘读入较快,并且在查询执行过程中小表的内容被处理时占用较少的主存储器。如果在更小的列上做索引,索引也占据较少的资源。
6、MySQL 配置参数优化
7、使用持久链接,避免重复打开数据库的开销。
8、其他小技巧
如,MySQL 查询中限定范围,应尽量充分利用索引,Where pID > 1000 Limit 20 要比 Limit 1000, 20 效率高很多。

类别:技术文章 | 阅读:181594 | 评论:0 | 标签:

想收藏或者和大家分享这篇好文章→

“MySQL 优化需要注意的几方面”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

公告

taoCMS发布taoCMS 3.0.2(最后更新21年03月15日),请大家速速升级,欢迎大家试用和提出您宝贵的意见建议。

捐助与联系

☟请使用新浪微博联系我☟

☟在github上follow我☟

标签云