Страница 1 из 1

MySQL - тюнинг

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

Спасибо.

Re: MySQL - тюнинг

Добавлено: 13 апр 2006, 21:13
CdR
для начала в конфиг mysql.
btw: индексы не потерялись при переносе?

PS: ADO -- не знаю, но imho это сказываться не должно бы.

Re: MySQL - тюнинг

Добавлено: 14 апр 2006, 09:39
vg
CdR писал(а):для начала в конфиг mysql.
btw: индексы не потерялись при переносе?

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

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

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

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

ППС. В свете появления SQL 2005, видимо альтернативы за сходные (или меньшие) деньги нет.

Добавлено: 17 апр 2006, 20:21
yasin
А какие величины времени?
Ведь 1/2 секунды на 100% медленнее чем 1/4.

Добавлено: 18 апр 2006, 16:17
vg
yasin писал(а):А какие величины времени?
Ведь 1/2 секунды на 100% медленнее чем 1/4.
Вряд ли стоит говорить об абсолютных значения, вернее не имеет смысла, но для сопоставления, в одних и тех же условиях мы получили для MS около 15 секунд для того, чтобы выполнить 100000 вызовов одной и той же процедуры "пустышки". Для MySQL - на 7-20% больше в зависимости от процедуры.

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

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

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

Добавлено: 19 апр 2006, 16:56
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% быстрее виндовз, то, наверное, если передвинуть на БСД, тожно получить хорошего ещё больше. Короче вырисовывается проектик;)
Спасибо всем за обсуждение.