Недавно я установил MySQL 5.1 на CentOS 6.2 и получил прирост производительности по сравнению с MySQL 4.1, который мы используем. Поэтому я обновил MySQL 5.1 до MySQL 5.5, чтобы увидеть, есть ли еще больший прирост, но на самом деле он работал вдвое медленнее, чем установка MySQL 5.1.
Тест, который я провел, проводился на столе с 2.3M записями с примечаниями blob.
5.1: 57.5899 сек
5.5: 96.3821 с
Что действительно интересно, так это то, что если я сделаю 100 000 записей, 5,5 превосходит 5,1, но все, что после этого, приводит к увеличению нагрузки 5,5, как в шипах; ускоряется и замедляется по мере загрузки, из-за чего, кажется, появляются лишние секунды.
Есть мысли, почему это? Одинаковый my.cnf для 5.1 и 5.5
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
bind-address = xxx.xxx.xxx.xxx
#This option makes InnoDB to store each created table into its own .ibd file.
innodb_file_per_table=1
max_allowed_packet=900M
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
Бывают случаи, когда MySQL 5.1 может превосходить MySQL 5.5 при определенных обстоятельствах.
Percona выполнила запекание среди нескольких выпусков MySQL
Все тесты проводились с ненастроенным MySQL (другими словами, my.cnf не создавался). Результаты?
Если вы хотите, чтобы новые версии MySQL работали лучше, вы должны настроиться на них. По факту, Я описал в DBA StackExchange идею выполнения MySQL Bakeoff.
Что я имею в виду настроиться на это?
В MySQL 5.5 появились новые возможности InnoDB для использования более выделенных потоков чтения, потоков записи и общей емкости ввода-вывода. Это может задействовать больше процессоров в многоядерных серверах. Остался ненастроеннымMySQL 5.5 в большинстве случаев будет работать на том же уровне, что и более старые версии MySQL. Иногда это могло быть хуже.
Подумайте о следующем:
Итог: MySQL 5.5 и Percona Server должны быть настроены для желаемого повышения производительности.
Имейте это в виду
Что такое Ламборджини?
Проблемы, которые вы видите, могут быть вызваны десятками различных основных причин. Гадать точно не стоит; вам, безусловно, необходимо тщательно измерить и диагностировать. Если вы соберете достаточно информации, истинная причина будет очевидна, и решение будет очевидным (при условии, что вы также достаточно разбираетесь во внутреннем устройстве сервера, чтобы понимать, на что вы смотрите). Если вы угадаете и попытаетесь сделать что-то вроде перенастройки сервера, мой опыт показывает, что вы можете значительно усугубить проблему или вызвать другие проблемы, и вы никогда не узнаете, помогло ли какое-либо конкретное изменение или нет.
Я бы предложил использовать инструмент pt-stalk из Percona Toolkit для захвата набора диагностических данных с сервера, когда происходит один из всплесков медленности, и то же самое, когда он работает быстрее. Там почти наверняка должно быть достаточно информации, чтобы понять, что происходит. Если вам неудобно проводить диагностику по нему, у любого компетентного поставщика поддержки MySQL не должно возникнуть проблем, если вы заархивируете образцы из pt-stalk и отправите их.
Я не хочу быть слишком повторяющимся или настойчивым, но опять же, пожалуйста, не используйте в этом вопросе метод проб и ошибок.