在使用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,键以倒序被读取。
在一些情况中,一个查询能被优化来检索值,不用咨询数据文件。如果对某些表的所有使用的列
是数字型的并且构成某些键的最左面前缀,为了更快,值可以从索引树被检索出来。