15 мая 2013 г.

MySQL Performance. Как оптимально использовать mysql с большими объёмами данных

MySQL Настройка переменных


1. запустить mysqladmin -variables
2. key_buffer - Величина буфера ( байтах ), который используется для индексов.Если используется много INSERT запросов к таблицам с большим количеством индексов, то увеличение значения повысит скорость выполнения таких запросов. Для достижения еще большей скорости нужно использовать LOCK TABLES.



Как работать с таблицами MySQL для достижения большей производительности.


1. По возможности все поля декларировать как NOT NULL. Это сделает работу с таблицами более быстрой и сохранит 1 бит на каждое такое поле.
2. Применять значения по умолчанию (DEFAULT). При вызове запроса INSERT в таблицу будут записываться только те поля, значения которых отличаются от DEFAULT.
3. Используйте настолько малые типы INT, насколько это возможно. Например, применять MEDIUMINT намного лучше, чем обычный INT.
4. При использовании нескольких последовательных INSERT запросов, лучше все данные указать в одном INSERT, чем делать несколько INSERT.
5. При загрузке данных в таблицу лучше использовать LOAD DATA INFILE, чем INSERT, такой метод в 20 раз быстрее.
6. Для увеличения скорости LOAD DATA INFILE и INSERT нужно увеличить значение переменной key_buffer.
7.Если ожидается много запросов INSERT или UPDATE, работающих одновременно, то для большей скорости рекомендуется приметь LOCK TABLES.
8.Время от времени нужно дефрагметировать таблицы. Это делается утилитой isamchk с опциями - evi.

MySQL Запросы



1. Следует избегать лимитов следующего вида LIMIT 10000000, 25 т.к. выбраны все равно будут 10000025 записей. Решением такой проблемы будет запрос вида WHERE id BETWEEN 10000000 and 10000025 или id > 10000000 AND id < 10000025 или
SELECT * FROM `table` WHERE id>X*Y-1 LIMIT X;
Где X — количество результатов на странице, Y — номер текущей страницы.

использованы материалы из
- http://www.mysql.ru/docs/tnastroyka.html
- http://habrahabr.ru/post/39818/
-http://www.rldp.ru/mysql/mysqlcli/glava14.htm
-http://recens.ru/mysql/32_tips_to_speed_up_mysql.html

Комментариев нет:

Отправить комментарий

Торговые стратегии на рынке форекс

На рынке Forex существует множество различных стратегий, которые трейдеры могут использовать при создании экспертных советников (экспертов)...