【发布时间】:2018-11-17 14:23:57
【问题描述】:
听说Mariadb的性能比mysql好,所以我用他的整个数据库克隆了一个网站来比较两者的区别。
确实缓存一切似乎更快,但是当没有缓存时我有非常奇怪的输出,在一些大请求上 mariadb 比 mysql 差得多:
MariaDB> select SQL_NO_CACHE [...] ORDER BY FIELD LIMIT 0, 200;
Empty set (10.13 sec)
mysql> select SQL_NO_CACHE [...] ORDER BY FIELD LIMIT 0, 200;
Empty set (0.76 sec)
差别很大,怎么可能?
完整的查询如下所示:
SELECT
SQL_NO_CACHE [...]
FROM
table1
WHERE
field1 = 'val1' and
field2 = 'val2' and
(field3='val3' or INSTR(field3, 'val3'))
ORDER BY field4 DESC LIMIT 0, 200;
这里是请求的解释:
+----+-------------+----------+------+--------------------------+---------+---------+-------+--------+-----------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+----------+------+--------------------------+---------+---------+-------+--------+-----------------------------+
| 1 | SIMPLE | table1 | ref | field1,field3 | field1 | 123 | const | 125832 | Using where; Using filesort |
+----+-------------+----------+------+--------------------------+---------+---------+-------+--------+-----------------------------+
【问题讨论】:
-
请解释选择...
-
索引是否相同?
-
是的,相同的索引,相同的数据,我克隆了数据库并将其迁移到mariadb
-
MariaDB 配置设置(在 my.cnf 中)是否与 MySQL 的配置设置(内存、缓冲区等)匹配?迁移是如何进行的?同时进行实验:尝试在 MariaDB 中重新创建索引,运行
optimize table。
标签: mysql performance mariadb