我们最近将mysql升级到版本5.5.17 frm 5.1。有了这个,在5.1中运行良好的许多查询的性能都严重下降。我开始更新查询,但也有任何更新。我想知道这里是否有人已经完成了这个并且有更好的想法。
EDIT1: 作为一个例子,我意识到连接两个表并且使用一个使用一个标准的where标准的查询在5.5中与5.1相比非常慢。在其中一个表中添加常量值并在连接中使用它有帮助。因此,在下面的查询中,第二个查询比第一个快得多。
select t1.*
from t1, t2
where t1.field1 = t2.field1
and t1.field2 = 100;
"id" "select_type" "table" "type" "possible_keys" "key" "key_len" "ref" "rows" "Extra"
"1" "SIMPLE" "t1" "ALL" "PRIMARY" \N \N \N "1" "Using where"
"1" "SIMPLE" "t2" "eq_ref" "PRIMARY" "PRIMARY" "152" "t1.field1" "1" "Using index"
select t1.*
from t1, t2
where t1.field1 = t2.field1
and t1.field2 = t2.field2; -- i added a col field2 in t2 with value = 100
"id" "select_type" "table" "type" "possible_keys" "key" "key_len" "ref" "rows" "Extra"
"1" "SIMPLE" "t1" "ALL" "PRIMARY" \N \N \N "1" ""
"1" "SIMPLE" "t2" "eq_ref" "PRIMARY" "PRIMARY" "152" "t1.field1" "1" "Using where"
答案 0 :(得分:4)
在某些情况下,MySQL 5.1有时可能胜过MySQL 5.5。
Percona performed a bake-off among multiple releases of MySQL
所有测试均在MySQL未配置的情况下进行(换句话说,没有制作my.cnf)。结果?
如果您希望更新版本的MySQL能够更好地运行,您必须调整它。实际上,I described in the DBA StackExchange the idea of performing a MySQL Bakeoff。
我的意思是什么呢?
在MySQL 5.5中,there are new InnoDB options for utilizing more dedicated read threads, write threads, and overall I/O capacity。这可以吸引多核服务器中的更多CPU。 左未配置 ,MySQL 5.5将在相同级别的竞争环境中运行,在大多数情况下,作为旧版本的MySQL运行。有时,它可能会表现得更糟。
答案 1 :(得分:0)
不幸的是,底层文件系统也在影响mysql的速度。在我的测量中,ext3文件系统的相同mysql版本比ext4快得多。
在CentOS上测试。