Есть база, MSSQL. Передвинул на MySQL. C InoDB таблицами работает раз в шесть медленнее. Перегенерил для MyISAM.
Заработало шустрее, но всеравно процентов на 10 медлене Microsoft.
Надо, чтобы работало процентов на 30 быстрее чем Microsoft. Клиенты используют ADO. Куда смотреть?
Спасибо.
MySQL - тюнинг
Правила форума
Пожалуйста, ознакомьтесь с правилами данного форума
Пожалуйста, ознакомьтесь с правилами данного форума
-
- Маньяк
- Сообщения: 2803
- Зарегистрирован: 29 май 2003, 22:29
- Откуда: Магадан - Миссиссага
- CdR
- Графоман
- Сообщения: 11245
- Зарегистрирован: 11 окт 2004, 19:27
- Откуда: Европа, центр, за углом направо.
Re: MySQL - тюнинг
для начала в конфиг mysql.
btw: индексы не потерялись при переносе?
PS: ADO -- не знаю, но imho это сказываться не должно бы.
btw: индексы не потерялись при переносе?
PS: ADO -- не знаю, но imho это сказываться не должно бы.
-
- Маньяк
- Сообщения: 2803
- Зарегистрирован: 29 май 2003, 22:29
- Откуда: Магадан - Миссиссага
Re: MySQL - тюнинг
Конфиг, конечно, немного подправил. И дженерал и по специфическим движкам. Хотя, у меня опыт тюнинга MySQL - 0.0.CdR писал(а):для начала в конфиг mysql.
btw: индексы не потерялись при переносе?
PS: ADO -- не знаю, но imho это сказываться не должно бы.
Индексы, все переехали удачно. Есть, правда, одна проблема, на которую указал первый раз мой начальник... В ряде процедур, порядок уловных выраженийв WHERE не совпадает в порядком ключей в составном индексе. Это приехало от MS (процедуры я переписывал в ручную, не обратив вниания на порядок ключей в индексах). Возможно придётся править. Как говорит шеф (он очень грамотный), MySQL-гай не оптимизирует выражения в процедурах. MSSQL же неким-то хитрым образом оптимизирует скомпилированный код процедуры. Там это не сказывается. Умён всёже MS - гад.
-
- Маньяк
- Сообщения: 2803
- Зарегистрирован: 29 май 2003, 22:29
- Откуда: Магадан - Миссиссага
Оказалось, что если вызвать "пустышку" (хранимую процедуру) на MySQL и MSSQL, по получим приблизительно одинаковое время выполнения этой процедуры, только в том случае, если процедура ничего не делает и не принимает параметров. Если в "пустышку" передать 2-3 параметра, в теле процедуры объявить и сделать set 2-3 -м переенным, то MySQL проигрывает на 7-8%. Если параметров и переменных 7-9, то MySQL проигрывает 18-20%. Короче, если надо ещё что-то осмысленное делать, да ещё с поддержной транзакций, то .... так вообще.
ПС. Разумеется, конфигурацию и драйверов ODBC MySQL и параметры сервера (что не очень-то влияет здесь) - менял, пытаясь получить лучшие результаты для MySQL по скорости.
ППС. В свете появления SQL 2005, видимо альтернативы за сходные (или меньшие) деньги нет.
ПС. Разумеется, конфигурацию и драйверов ODBC MySQL и параметры сервера (что не очень-то влияет здесь) - менял, пытаясь получить лучшие результаты для MySQL по скорости.
ППС. В свете появления SQL 2005, видимо альтернативы за сходные (или меньшие) деньги нет.
- yasin
- Пользователь
- Сообщения: 166
- Зарегистрирован: 17 апр 2006, 20:07
- Откуда: Монреаль
-
- Маньяк
- Сообщения: 2803
- Зарегистрирован: 29 май 2003, 22:29
- Откуда: Магадан - Миссиссага
Вряд ли стоит говорить об абсолютных значения, вернее не имеет смысла, но для сопоставления, в одних и тех же условиях мы получили для MS около 15 секунд для того, чтобы выполнить 100000 вызовов одной и той же процедуры "пустышки". Для MySQL - на 7-20% больше в зависимости от процедуры.yasin писал(а):А какие величины времени?
Ведь 1/2 секунды на 100% медленнее чем 1/4.
- Проф. Преображенский
- Графоман
- Сообщения: 20276
- Зарегистрирован: 08 ноя 2006, 11:10
Никто не будет запускать MySQL для критичных по времени приложений на Виндоуз. А MSSQL нет на -nix.vg писал(а):Вряд ли стоит говорить об абсолютных значения, вернее не имеет смысла, но для сопоставления, в одних и тех же условиях мы получили для MS около 15 секунд для того, чтобы выполнить 100000 вызовов одной и той же процедуры "пустышки". Для MySQL - на 7-20% больше в зависимости от процедуры.yasin писал(а):А какие величины времени?
Ведь 1/2 секунды на 100% медленнее чем 1/4.

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

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

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