Проблема производительности.

MySQL/PostgreSQL/SQLite/Oracle/M$SQL/....

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
freeman
лейтенант
Сообщения: 734
Зарегистрирован: 2007-03-18 5:13:25

Re: Проблема производительности.

Непрочитанное сообщение freeman » 2008-11-13 14:33:41

Код: Выделить всё

Server version: 5.0.51a-log FreeBSD port: mysql-server-5.0.51a

mysql> select BENCHMARK(1000000,ENCODE('hello','goodbye'));
+----------------------------------------------+
| BENCHMARK(1000000,ENCODE('hello','goodbye')) |
+----------------------------------------------+
|                                            0 |
+----------------------------------------------+
1 row in set (1.20 sec)

Код: Выделить всё

sysctl hw.model
hw.model: AMD Sempron(tm) Processor 3400+
uname -a
FreeBSD 6.3-RELEASE
Остатся должен только один ...

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Brick85
проходил мимо
Сообщения: 5
Зарегистрирован: 2008-11-13 16:57:53

Re: Проблема производительности.

Непрочитанное сообщение Brick85 » 2008-11-13 17:02:07

Похоже, что у меня такая-же проблема :(

Код: Выделить всё

Intel(R) Xeon(R) CPU X3210  @ 2.13GHz
FreeBSD 7.0-RELEASE
MySQL 5.1.29-rc

select BENCHMARK(1000000,ENCODE('hello','goodbye'));
+----------------------------------------------+
| BENCHMARK(1000000,ENCODE('hello','goodbye')) |
+----------------------------------------------+
|                                            0 |
+----------------------------------------------+
1 row in set (17.09 sec)
Я так понимаю, что должно быть быстрее... :(
Решения проблемы нет? :)
S50B32 power! ;)

Аватара пользователя
Brick85
проходил мимо
Сообщения: 5
Зарегистрирован: 2008-11-13 16:57:53

Re: Проблема производительности.

Непрочитанное сообщение Brick85 » 2008-11-13 18:08:24

Если кому интересно, то помогла смена mysql с 5.1 на 5.0:

Код: Выделить всё

MySQL 5.0.67

select benchmark(1000000,encode('hello','goodbye'));
+----------------------------------------------+
| benchmark(1000000,encode('hello','goodbye')) |
+----------------------------------------------+
|                                            0 |
+----------------------------------------------+
1 row in set (0.48 sec)
S50B32 power! ;)

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Проблема производительности.

Непрочитанное сообщение zg » 2008-11-13 20:45:10

я думаю тут всё дело в encode, скорее всего у муси переделали внутренний механизм работы со строками

Аватара пользователя
zar0ku1
сержант
Сообщения: 238
Зарегистрирован: 2008-02-29 4:38:05
Откуда: Южно-Сахалинск
Контактная информация:

Re: Проблема производительности.

Непрочитанное сообщение zar0ku1 » 2008-11-14 6:02:46

Brick85 писал(а):Если кому интересно, то помогла смена mysql с 5.1 на 5.0:
спасибо!
провел так сказать свое расследование на FreeBSD 7.0-RELEASE в итоге получил (диаграмму прикладываю)
над столбцами время в секундах на выполнение

Код: Выделить всё

select BENCHMARK(1000000,ENCODE('hello','goodbye'));
под столбцами версия mysql-server

я же использовал в работе связку 7.0+mysql 5.1 при смене на 7.0+mysql 5.0 скорость работы увеличилась в разы

вывод: не все новое лучше старого
Вложения
mysql-benchmark.jpg
mysql-benchmark.jpg (8.74 КБ) 1979 просмотров
На фоне дураков четче хорошие люди прорисовываются.
(с) Граффити

Аватара пользователя
LMik
капитан
Сообщения: 1852
Зарегистрирован: 2007-07-17 9:14:39
Откуда: МО
Контактная информация:

Re: Проблема производительности.

Непрочитанное сообщение LMik » 2008-11-14 7:29:41

На самом деле просто функция Encode скорее всего по разному реализована :D
BSD... Join the dark side.
Виpус детям не игpушка, не товаpищ и не дpуг!

Аватара пользователя
zar0ku1
сержант
Сообщения: 238
Зарегистрирован: 2008-02-29 4:38:05
Откуда: Южно-Сахалинск
Контактная информация:

Re: Проблема производительности.

Непрочитанное сообщение zar0ku1 » 2008-11-14 8:31:00

LMik писал(а):На самом деле просто функция Encode скорее всего по разному реализована :D
вывел лог всех запросов который делает mysql ни одного encode чего-то не нашел

предлагай как еще потестируем, может:
select BENCHMARK(1000000, 1+20*2/3*5); =)
лучше делать конечно тест на запросы select и insert
На фоне дураков четче хорошие люди прорисовываются.
(с) Граффити

Аватара пользователя
manefesto
Группенфюррер
Сообщения: 6934
Зарегистрирован: 2007-07-20 8:27:30
Откуда: Пермь
Контактная информация:

Re: Проблема производительности.

Непрочитанное сообщение manefesto » 2008-11-14 10:00:44

а есть вообще какой нибудь другой стресс тест ???
Хорошо бы потестить...
Давайте предложения...соберем тест
я такой яростный шо аж пиздеЦ
Изображение

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Проблема производительности.

Непрочитанное сообщение zg » 2008-11-14 10:25:57

надо смотреть на выборки:
1. выборка без условия из большой таблицы
2. выборка по условию
3. выборка из множества таблиц
4. выборка с перекодировкой

всё остальное не очень критично

Аватара пользователя
LMik
капитан
Сообщения: 1852
Зарегистрирован: 2007-07-17 9:14:39
Откуда: МО
Контактная информация:

Re: Проблема производительности.

Непрочитанное сообщение LMik » 2008-11-14 10:43:05

zg писал(а):надо смотреть на выборки:
1. выборка без условия из большой таблицы
2. выборка по условию
3. выборка из множества таблиц
4. выборка с перекодировкой

всё остальное не очень критично
+выборка с вертикальными и горизонатльными джойнами
+с функциями шифрования типа md5
BSD... Join the dark side.
Виpус детям не игpушка, не товаpищ и не дpуг!

Аватара пользователя
zar0ku1
сержант
Сообщения: 238
Зарегистрирован: 2008-02-29 4:38:05
Откуда: Южно-Сахалинск
Контактная информация:

Re: Проблема производительности.

Непрочитанное сообщение zar0ku1 » 2008-11-14 11:06:47

zg писал(а):надо смотреть на выборки:
1. выборка без условия из большой таблицы
2. выборка по условию
3. выборка из множества таблиц
4. выборка с перекодировкой

всё остальное не очень критично
пример большой таблицы покажи
На фоне дураков четче хорошие люди прорисовываются.
(с) Граффити

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Проблема производительности.

Непрочитанное сообщение zg » 2008-11-14 11:35:44

несколько миллионов записей

Код: Выделить всё

`id` числовой первичный ключ
`key` числовой обычный индекс
`value` строковое значение
можно заполнить следующими значениями

Код: Выделить всё

id - заполняется сам
key - случайное целое число от одного до ста
value - md5 хеш от суммы id и key
после этого сделать выборку по первичному ключу
по обыному ключу, использвую GROUP BY
по значению, используя сортировки и GROUP BY
делать выборку в другой кодировке, используя различные функции

дальше мучать многотаблицные запросы. :smile:

Аватара пользователя
manefesto
Группенфюррер
Сообщения: 6934
Зарегистрирован: 2007-07-20 8:27:30
Откуда: Пермь
Контактная информация:

Re: Проблема производительности.

Непрочитанное сообщение manefesto » 2008-11-14 13:40:44

блин....а может есть готовое решение ????
сравнили бы фрю с линуксом
я такой яростный шо аж пиздеЦ
Изображение

Аватара пользователя
LMik
капитан
Сообщения: 1852
Зарегистрирован: 2007-07-17 9:14:39
Откуда: МО
Контактная информация:

Re: Проблема производительности.

Непрочитанное сообщение LMik » 2008-11-14 14:54:40

manefesto писал(а):блин....а может есть готовое решение ????
сравнили бы фрю с линуксом
sysbench

http://people.freebsd.org/~kris/scaling ... myisam.png
BSD... Join the dark side.
Виpус детям не игpушка, не товаpищ и не дpуг!

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Проблема производительности.

Непрочитанное сообщение zg » 2008-11-14 22:35:19

LMik писал(а):sysbench
может и правда свой накатать тут всего пара строк :smile: завтра накатаю, если всё будет нормально -)))

Аватара пользователя
freeman
лейтенант
Сообщения: 734
Зарегистрирован: 2007-03-18 5:13:25

Re: Проблема производительности.

Непрочитанное сообщение freeman » 2008-11-14 23:59:21

Катай, примем участие в тестировании :)
Остатся должен только один ...

Аватара пользователя
zar0ku1
сержант
Сообщения: 238
Зарегистрирован: 2008-02-29 4:38:05
Откуда: Южно-Сахалинск
Контактная информация:

Re: Проблема производительности.

Непрочитанное сообщение zar0ku1 » 2008-11-15 7:10:49

freeman писал(а):Катай, примем участие в тестировании :)
поддерживаю
На фоне дураков четче хорошие люди прорисовываются.
(с) Граффити

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Проблема производительности.

Непрочитанное сообщение zg » 2008-11-15 12:32:18

Исходник с красявостями http://anton-pribora.ru/scripts/mysql_benchmark.sh.php

Скрипт в нетронутом виде
mysql_benchmark.zip
(2.11 КБ) 26 скачиваний
Я запускал так

Код: Выделить всё

zg# ./mysql_benchmark.sh -h localhost -p "" -b test -u root -r 100000
-----------------------------
Тест номер 1
------------------------------
Создание таблицы: ок (MySQL: 4.1.22, DB: test)
Заполнение таблицы (100000 строк): 21.40
Обновление записей при помощи md5: 1.56
Обновление записей при помощи sha1: 2.73
Выборка с группировкой по ключу: 0.09
Выборка с группировкой по текстовому полю: 3.74
zg# ./mysql_benchmark.sh -h 192.168.53.4 -p "" -b test -u root -r 100000
-----------------------------
Тест номер 1
------------------------------
Создание таблицы: ок (MySQL: 4.1.16-max, DB: test)
Заполнение таблицы (100000 строк): 58.02
Обновление записей при помощи md5: 0.03
Обновление записей при помощи sha1: 0.06
Выборка с группировкой по ключу: 0.07
Выборка с группировкой по текстовому полю: 1.28
zg#
насколько скрипт отказустойчивый сказать трудно. Но проверки на правильность исполнения запросов пока нет (точнее только частично).

Дружно тестим :smile:

Аватара пользователя
zar0ku1
сержант
Сообщения: 238
Зарегистрирован: 2008-02-29 4:38:05
Откуда: Южно-Сахалинск
Контактная информация:

Re: Проблема производительности.

Непрочитанное сообщение zar0ku1 » 2008-11-17 16:20:56

Код: Выделить всё

FreeBSD 7.0-RELEASE 
E4400 + 512ram

Код: Выделить всё

-----------------------------
Тест номер 1
------------------------------
Создание таблицы: ок (MySQL: 5.0.67, DB: test)
Заполнение таблицы (100000 строк): 10.23
Обновление записей при помощи md5: 2.25
Обновление записей при помощи sha1: 3.75
Выборка с группировкой по ключу: 0.05
Выборка с группировкой по текстовому полю: 3.61
На фоне дураков четче хорошие люди прорисовываются.
(с) Граффити

Аватара пользователя
freeman
лейтенант
Сообщения: 734
Зарегистрирован: 2007-03-18 5:13:25

Re: Проблема производительности.

Непрочитанное сообщение freeman » 2008-11-21 9:00:10

AMD Sempron(tm) Processor 3400+
FreeBSD 6.3-RELEASE

Код: Выделить всё

Тест номер 1
------------------------------
Создание таблицы: ок (MySQL: 5.0.51a-log, DB: test)
Заполнение таблицы (100000 строк): 15.57
Обновление записей при помощи md5: 2.05
Обновление записей при помощи sha1: 3.94
Выборка с группировкой по ключу: 0.10
Выборка с группировкой по текстовому полю: 1.30
Я так понимаю тут и винты и процы тестятся :)
Остатся должен только один ...

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Проблема производительности.

Непрочитанное сообщение zg » 2008-11-21 10:13:20

freeman писал(а):Я так понимаю тут и винты и процы тестятся :)
при обновлении - проц, при выборке с группировкой по текстовому полю - файловая система. По идее надо на одном железе тестит, но на разных версиях и сразным количеством строк. Тогда станет ясно, что и куда.

Если руки доберутся, то завтра проведу большой тест.

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Проблема производительности.

Непрочитанное сообщение zg » 2008-11-21 16:38:09

Код: Выделить всё

+-------------------------------------------+---------------+----------------+
|                                           | 100000 строк  | 1000000 строк  |
|              MySQL: 4.1.22                +-------+-------+-------+--------+
|                                           | 7.0-R | 6.3-R | 7.0-R | 6.3-R  |
+-------------------------------------------+-------+-------+-------+--------+
| Заполнение таблицы                        | 8.19  | 9.26  | 87.87 | 98.86  |
| Обновление записей при помощи md5         | 1.76  | 1.73  | 18.71 | 18.46  |
| Обновление записей при помощи sha1        | 2.80  | 2.86  | 31.35 | 31.24  |
| Выборка с группировкой по ключу           | 0.05  | 0.09  | 0.48  | 0.85   |
| Выборка с группировкой по текстовому полю | 1.21  | 1.19  | ^C    | ^C     |
+-------------------------------------------+-------+-------+-------+--------+

+-------------------------------------------+---------------+----------------+
|                                           | 100000 строк  | 1000000 строк  |
|            MySQL: 5.1.22-rc               +-------+-------+-------+--------+
|                                           | 7.0-R | 6.3-R | 7.0-R | 6.3-R  |
+-------------------------------------------+-------+-------+-------+--------+
| Заполнение таблицы                        | 9.64  | 11.73 | 105.24| 127.05 |
| Обновление записей при помощи md5         | 1.83  | 1.76  | 19.36 | 18.49  |
| Обновление записей при помощи sha1        | 2.91  | 2.83  | 32.40 | 30.77  |
| Выборка с группировкой по ключу           | 0.05  | 0.09  | 0.53  | 0.90   |
| Выборка с группировкой по текстовому полю | 1.05  | 1.13  | ^C    | ^C     |
+-------------------------------------------+-------+-------+-------+--------+
в общем, тест убедительно показал, что особой разницы нет

Аватара пользователя
zar0ku1
сержант
Сообщения: 238
Зарегистрирован: 2008-02-29 4:38:05
Откуда: Южно-Сахалинск
Контактная информация:

Re: Проблема производительности.

Непрочитанное сообщение zar0ku1 » 2008-11-22 7:38:20

zg писал(а):в общем, тест убедительно показал, что особой разницы нет
ничего себе нет 4.1 в твоем случае уверенно лидирует
На фоне дураков четче хорошие люди прорисовываются.
(с) Граффити

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Проблема производительности.

Непрочитанное сообщение zg » 2008-11-22 9:03:44

zar0ku1 писал(а):ничего себе нет 4.1 в твоем случае уверенно лидирует
ты про внесение строк на семёрке? на самом деле этот тест мало чего показывает, в основном производительность всего компа в целом. Хотя, конечно, четвёрка вносит данные чуточку быстрее, но повторюсь, что такие тесты нужно делать на отдельных файлах, а не через стандартный входной поток.

Зато выяснилась другая интересная особенность - на ста тысячах группировка по текстовому полю идёт просто с невероятной скоростью, а на миллионе её не дождаться... Видимо алгоритмы разные используются, скорее всего в первом случае используется память, во втором файловая система.

В общем-то я хотел увидеть ту самую огроменную разницу, которую мы наблюдали с ENCODE, но её нет. А тест показал, что на основных операциях разница в пределах погрешности и тюнинга самой базы.