您的位置:首页 > 数据库 > MySQL

改善MySQL性能问题

2010-11-23 09:08 344 查看
在使用M主SQL开发中,总结出 改善MySQL性能的两个方面:

1.增加 tmp_table_size 值。mysql 的配置文件中,tmp_table_size 的默认大小是 32M。

如果一张临时表超出该大小,MySQL产生一个 The table tbl_name is full 形式的错误,

如果你做很多高级 GROUP BY 查询,增加 tmp_table_size 值。

例如:

my.ini

[mysqld]

tmp_table_size=300M

2.对 WHERE, JOIN2, MAX(), MIN(), ORDER BY 等子句中的条件判断中用到的字段,应该根据其建立

索引 INDEX。

索引被用来快速找出在一个列上用一特定值的行。没有索引,MySQL不得不首先以第一条记录开始并然后读

完整个表直到它找出相关的行。表越大,花费时间越多。如果表对于查询的列有一个索引,MySQL能快速到

达一个位置去搜寻到数据文件的中间,没有必要考虑所有数据。如果一个表有1000行,这比顺序读取至少快

100倍。所有的MySQL索引(PRIMARY、UNIQUE和INDEX)在B树中存储。

快速找出匹配一个WHERE子句的行 当执行联结(JOIN)时,从其他表检索行。

对特定的索引列找出MAX()或MIN()值如果排序或分组在一个可用键的最左面前缀上进行(例如,ORDER BY

key_part_1,key_part_2),排序或分组一个表。如果所有键值部分跟随DESC,键以倒序被读取。

在一些情况中,一个查询能被优化来检索值,不用咨询数据文件。如果对某些表的所有使用的列

是数字型的并且构成某些键的最左面前缀,为了更快,值可以从索引树被检索出来。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: