Базы данных. MySQL+составные индексы
На модерации
Отложенный
MySQL
- Индексы необходимо использовать для ускорения запросов. Но если записей многие тысячи - надо использовать и составные индексы. Подробнее тут. Если всё правильно сделать, то время выполнения запроса можно увеличить в десятки, а то и сотни раз. По-анлийски тут. Ещё мощная статья на русском тут
- OpenNet
- Иногда следует заходить в MySQL Administrator и выполнять оптимизацию таблиц вручную для выбранных таблиц. Либо можно использовать эти SQL-запросы.
- Свои настройки для сервера с оперативной памятью 512Mb
- default-character-set=cp1251
- query_cache_size=2M
- key_buffer_size=16M
- sort_buffer_size=16M
- innodb_additional_mem_pool_size=2M
- innodb_buffer_pool_size=128M
- default-character-set=cp1251
- memlock
- innodb_file_per_table
- interactive_timeout=288000
- wait_timeout=288000
- preload_buffer_size=64k
- query_cache_limit=256k
- query_cache_min_res_unit=16k
- query_cache_type=1
- query_prealloc_size=16k
- net_buffer_length=64k
- skip-name-resolve
- Если памяти 2Gb - надо существенно увеличить innodb_buffer_pool_size до 1.5Gb и query_cache_size до 128Mb. Остальное можно оставить как есть.
Для всех серверов БД важны:
- Быстрый винчестер
- Объём оперативной памяти
- Количество ядер или процессоров
- Наличие правильных составных индексов
- Дефрагментация диска
Комментарии