ТОП-10 популярных


НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...


Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...

Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...

БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...


Какую только информацию мы не помещаем на компакт-диски: резервные копии важных данных, музыку, фильмы... Многие полагают, что главное - «купить...

Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...

Размер объему не помеха.
С тех пор как компания Fujitsu отказалась от производства жестких дисков для настольных компьютеров, многие пользователи начали забывать о том,...

ПОД ЛИТЕРОЙ «N»
Aтаку LCD-мониторов не остановить, а масштабы этого наступления даже немного пугают. Судите сами — многие пользователи только начинают приглядываться к новому для...

Internet2, или cтарые песни о новом
Когда-то на заре Интернета, тогдаеще военно-научной сетиAPRAnet, были заложены основныепринципы функционирования«Сети сетей». В их числе — использованиепротокола, называемого сейчасIPv4. В...

Все о MySQL. Оптимизация структуры таблиц


28-12-2009

В контексте сохранения простоты запросов, при разработке структуры таблиц необходимо учитывать несколько моментов. Во-первых, если часто запрашиваемая таблица также часто изменяется, то использование полей постоянной длины по сравнению с переменной длиной позволяет увеличить производительность. По определению поля постоянной длины занимают определенный объем пространства независимо от содержания, а поля переменной длины изменяются в зависимости от хранимых в них данных. Таким образом, при использовании полей постоянной длины, вы вынуждены тратить больше дискового пространства. Однако, если вы преследуете цель повышения скорости обработки данных, MySQL будет производительней при полях постоянной длины, чем переменной.
Если вы, все-таки, будете использовать поля постоянной длины, следите, чтобы размер столбца был минимальным. Например, при создании таблицы лучше просто создать столбец CHAR (255), чем волноваться о том, насколько большим нужно его сделать. На практике для ваших потребностей вам может понадобиться лишь половина этого размера. Уменьшение размера столбца не только освобождает место, но и означает меньше операций ввода/вывода при обработке. Вполне ясно, что полное удаление совсем ненужных столбцов также может повысить производительность.
Еще один способ увеличить производительность - использовать для часто изменяемых таблиц команду OPTIMIZE TABLE (более подробно она описана в главе 15, "Обслуживание, резервное копирование и восстановление"). Частые изменения приводят к фрагментации, что в свою очередь приводит к дополнительным затратам времени на чтение неиспользуемых блоков при получении нужных данных.
При рассмотрении способов увеличения производительности, убедитесь, нужны ли вам все таблицы. Опять-таки, при создании таблицы неплохой идеей было бы разбить данные на отдельные таблицы, но вовлечение дополнительных таблиц приводит к снижению производительности. Можно ли поместить данные в одну таблицу?
Если вы по какой-либо причине не можете это сделать, попробуйте согласовать объе­диняемые столбцы. Запросы будут производиться эффективнее, если столбцы, по которым происходит объединение, имеют один тип данных и длину.
Фактор размера
Вот подсказка о модифицировании таблиц под использование полей постоянной длины: если столбцу в часто изменяемой таблице нельзя задать постоянную длину, тогда попробуйте переместить этот столбец в отдельную таблицу, а оставшимся столбцам в исходной таблице задать постоянную длину. Хоть это и не всегда срабатывает, но все же такой способ повышения производительности от использования полей постоянной длины считается более рациональным по сравнению с полями переменной длины.
Обратите внимание, что хранение строк в таблицах InnoDB или BDB отличается от хранения в таблицах MylSAM или ISAM. Использование в этих таблицах вместо столбцов постоянного размера столбцов переменного размера не приводит к увеличению производительности.

Ссылки
Оптимизация запросов - это почти целая наука, и ее невозможно изложить в одной главе. Подробнее об этом можно узнать на Web-страницах http://www. mysql.com/doc/en/MySQL_Optimisation.html и http://www.mysql.com/doc/ en/Tips.html

Понравился материал? Поделитесь с друзьями!



<< Предыдущая статьяСледующая статья >>
Все о MySQL. Оптимизация многотабличных запросов Все о MySQL. Изменение настроек сервера