MySQL - тюнинг

Все, что вы хотели знать о программизме, но боялись спросить.
Ответить
vg
Маньяк
Сообщения: 2803
Зарегистрирован: 29 май 2003, 22:29
Откуда: Магадан - Миссиссага

MySQL - тюнинг

Сообщение vg »

Есть база, MSSQL. Передвинул на MySQL. C InoDB таблицами работает раз в шесть медленнее. Перегенерил для MyISAM.
Заработало шустрее, но всеравно процентов на 10 медлене Microsoft.
Надо, чтобы работало процентов на 30 быстрее чем Microsoft. Клиенты используют ADO. Куда смотреть?

Спасибо.
Аватара пользователя
CdR
Графоман
Сообщения: 11245
Зарегистрирован: 11 окт 2004, 19:27
Откуда: Европа, центр, за углом направо.

Re: MySQL - тюнинг

Сообщение CdR »

для начала в конфиг mysql.
btw: индексы не потерялись при переносе?

PS: ADO -- не знаю, но imho это сказываться не должно бы.
vg
Маньяк
Сообщения: 2803
Зарегистрирован: 29 май 2003, 22:29
Откуда: Магадан - Миссиссага

Re: MySQL - тюнинг

Сообщение vg »

CdR писал(а):для начала в конфиг mysql.
btw: индексы не потерялись при переносе?

PS: ADO -- не знаю, но imho это сказываться не должно бы.
Конфиг, конечно, немного подправил. И дженерал и по специфическим движкам. Хотя, у меня опыт тюнинга MySQL - 0.0.

Индексы, все переехали удачно. Есть, правда, одна проблема, на которую указал первый раз мой начальник... В ряде процедур, порядок уловных выраженийв WHERE не совпадает в порядком ключей в составном индексе. Это приехало от MS (процедуры я переписывал в ручную, не обратив вниания на порядок ключей в индексах). Возможно придётся править. Как говорит шеф (он очень грамотный), MySQL-гай не оптимизирует выражения в процедурах. MSSQL же неким-то хитрым образом оптимизирует скомпилированный код процедуры. Там это не сказывается. Умён всёже MS - гад.
vg
Маньяк
Сообщения: 2803
Зарегистрирован: 29 май 2003, 22:29
Откуда: Магадан - Миссиссага

Сообщение vg »

Оказалось, что если вызвать "пустышку" (хранимую процедуру) на MySQL и MSSQL, по получим приблизительно одинаковое время выполнения этой процедуры, только в том случае, если процедура ничего не делает и не принимает параметров. Если в "пустышку" передать 2-3 параметра, в теле процедуры объявить и сделать set 2-3 -м переенным, то MySQL проигрывает на 7-8%. Если параметров и переменных 7-9, то MySQL проигрывает 18-20%. Короче, если надо ещё что-то осмысленное делать, да ещё с поддержной транзакций, то .... так вообще.

ПС. Разумеется, конфигурацию и драйверов ODBC MySQL и параметры сервера (что не очень-то влияет здесь) - менял, пытаясь получить лучшие результаты для MySQL по скорости.

ППС. В свете появления SQL 2005, видимо альтернативы за сходные (или меньшие) деньги нет.
Аватара пользователя
yasin
Пользователь
Сообщения: 166
Зарегистрирован: 17 апр 2006, 20:07
Откуда: Монреаль

Сообщение yasin »

А какие величины времени?
Ведь 1/2 секунды на 100% медленнее чем 1/4.
vg
Маньяк
Сообщения: 2803
Зарегистрирован: 29 май 2003, 22:29
Откуда: Магадан - Миссиссага

Сообщение vg »

yasin писал(а):А какие величины времени?
Ведь 1/2 секунды на 100% медленнее чем 1/4.
Вряд ли стоит говорить об абсолютных значения, вернее не имеет смысла, но для сопоставления, в одних и тех же условиях мы получили для MS около 15 секунд для того, чтобы выполнить 100000 вызовов одной и той же процедуры "пустышки". Для MySQL - на 7-20% больше в зависимости от процедуры.
Аватара пользователя
Проф. Преображенский
Графоман
Сообщения: 20276
Зарегистрирован: 08 ноя 2006, 11:10

Сообщение Проф. Преображенский »

vg писал(а):
yasin писал(а):А какие величины времени?
Ведь 1/2 секунды на 100% медленнее чем 1/4.
Вряд ли стоит говорить об абсолютных значения, вернее не имеет смысла, но для сопоставления, в одних и тех же условиях мы получили для MS около 15 секунд для того, чтобы выполнить 100000 вызовов одной и той же процедуры "пустышки". Для MySQL - на 7-20% больше в зависимости от процедуры.
Никто не будет запускать MySQL для критичных по времени приложений на Виндоуз. А MSSQL нет на -nix. :roll:
vg
Маньяк
Сообщения: 2803
Зарегистрирован: 29 май 2003, 22:29
Откуда: Магадан - Миссиссага

Сообщение vg »

runner писал(а):
vg писал(а):
yasin писал(а):А какие величины времени?
Ведь 1/2 секунды на 100% медленнее чем 1/4.
Вряд ли стоит говорить об абсолютных значения, вернее не имеет смысла, но для сопоставления, в одних и тех же условиях мы получили для MS около 15 секунд для того, чтобы выполнить 100000 вызовов одной и той же процедуры "пустышки". Для MySQL - на 7-20% больше в зависимости от процедуры.
Никто не будет запускать MySQL для критичных по времени приложений на Виндоуз. А MSSQL нет на -nix. :roll:
Это ведь только твоё мнение?
Аватара пользователя
Проф. Преображенский
Графоман
Сообщения: 20276
Зарегистрирован: 08 ноя 2006, 11:10

Сообщение Проф. Преображенский »

vg писал(а):
runner писал(а):
vg писал(а):
yasin писал(а):А какие величины времени?
Ведь 1/2 секунды на 100% медленнее чем 1/4.
Вряд ли стоит говорить об абсолютных значения, вернее не имеет смысла, но для сопоставления, в одних и тех же условиях мы получили для MS около 15 секунд для того, чтобы выполнить 100000 вызовов одной и той же процедуры "пустышки". Для MySQL - на 7-20% больше в зависимости от процедуры.
Никто не будет запускать MySQL для критичных по времени приложений на Виндоуз. А MSSQL нет на -nix. :roll:
Это ведь только твоё мнение?
:wink: Это ж очевидно.
vg
Маньяк
Сообщения: 2803
Зарегистрирован: 29 май 2003, 22:29
Откуда: Магадан - Миссиссага

Сообщение vg »

runner писал(а):
vg писал(а):
runner писал(а):
vg писал(а):
yasin писал(а):А какие величины времени?
Ведь 1/2 секунды на 100% медленнее чем 1/4.
Вряд ли стоит говорить об абсолютных значения, вернее не имеет смысла, но для сопоставления, в одних и тех же условиях мы получили для MS около 15 секунд для того, чтобы выполнить 100000 вызовов одной и той же процедуры "пустышки". Для MySQL - на 7-20% больше в зависимости от процедуры.
Никто не будет запускать MySQL для критичных по времени приложений на Виндоуз. А MSSQL нет на -nix. :roll:
Это ведь только твоё мнение?
:wink: Это ж очевидно.
Ну да... "Очевидное-Невероятное" :lol:

Наверное, уже никому не интересно, но справледливости ради, думаю, надо заметить.
Связались с разработчиками и инженерами MySQL (телеконфа). Выслали им наши конфиги. Они подправили нас (для InnoDb движка). Увеличили размер временных таблиц + переложили лог на другой драйв + увеличили размер лога + сделали только раз в секунду флаш логов + откулючили кэширование результатов запросов (этого в принципе у нас почти нет). Теперь движок InnoDb на 38-40 процетнов шустрее Microsoft 2000. Это при том, что InnoDb поддерживает и транзакции.%-)
C MyISAM, думаю, будет ещё быстрее. Пока не тюнили. Т.к. айо *никс, как говорят на 30% быстрее виндовз, то, наверное, если передвинуть на БСД, тожно получить хорошего ещё больше. Короче вырисовывается проектик;)
Спасибо всем за обсуждение.
Ответить