Календарные данные.
СУБД MySQL имеет 5 столбцов для хранения календарных типов данных: DATE, DATETIME, TIME, TIMESTAMP и YEAR (табл.3).
Таблица 3. Календарные типы
Тип | Объем памяти | Диапазон |
DATE | 3 байта | от '1000-01-01' до '9999-12-31' |
TIME | 3 байта | от '-828:59:59' до '828:59:59' |
DATATIME | 8 байт | от '1000-01-01 00:00:00' до '9999-12-31 00:00:00' |
TIMESTAMP[(M)] | 4 байта | от 19700101000000 до неопределенной даты в 2037 году |
YEAR[(M)] | 1 байт | от 1901 до 2155 для YEAR (4) от 1970 до 2069 для YEAR (2) |
Выбор типа данных.
При выборе типа данных следует помнить, что обработка числовых данных происходит быстрее строковых. Так как типы данных ENUM и SET имеют внутреннее числовое представление, им следует отдавать предпочтение перед другими видами строковых данных, если предоставляется такая возможность. Производительность можно увеличить за счет представления строк в виде чисел. Примером может служить преобразование IP-адреса из строковой нотации в INT(4). Это позволит уменьшить размер таблицы и значительно увеличит скорость при сортировке и выборке данных, но потребует дополнительных преобразований.
Не следует забывать, что базы данных хранятся на жестком диске, и чем меньше места они занимают, тем быстрее происходят поиск и извлечение. Поэтому там, где есть возможность, предпочтение следует отдавать типам данных, занимающим меньше места. Типы фиксированной длины обрабатываются быстрее типов переменной длины, так как в последнем случае при частых удалениях и модификациях таблицы происходит фрагментация таблицы.
Если применение столбцов с данными переменной длины неизбежно, для дефрагментации таблицы следует применять команду OPTIMIZE TABLE.
Таблицы MySQL.
СУБД MySQL в настоящее время поддерживает несколько видов таблиц: ISAM, MylSAM, MERGE, HEAP, BDB И InnoDB.
Изначально СУБД MySQL планировалась как одна из быстрых баз данных и поддерживала единственный тип таблицы — ISAM, В котором применяется индексно-последовательный метод доступа. Для ускорения выполнения запросов дескриптор ISAM не поддерживает транзакции и ряд операторов SQL.
Тип таблицы ISAM сейчас является устаревшим. Он применялся в ранних версиях MySQL, использование его нежелательно, так как в будущем его поддержка может будет удалена. Этот вид таблиц был заменен на новый — MylSAM, являющийся стандартным типом по умолчанию. Основные преимущества по сравнению с таблицами типа ISAM заключаются в следующем:
• поддерживается больший размер таблиц;
• содержимое таблиц хранится в формате, не зависящем от платформы;
• более эффективно работает с индексами и атрибутом AUTO_INCREMENT;
• более эффективно организована проверка целостности таблицы;
• поддерживается полнотекстовый поиск с использованием индекса FULLTEXT.
Таблицы MERGE предназначены для объединения нескольких таблиц MyiSAM в одну. Причем с помощью одного запроса можно обращаться ко всем таблицам, входящим в состав единой таблицы. Главное преимущество такого
объединения в том, что итоговая таблица может превышать предельный размер, установленный для таблиц MyiSAM.
Таблицы HEAP — это временные таблицы, предназначенные для хранения в оперативной памяти. Для повышения эффективности в них применяются только строки фиксированной длины. Таблицы типа BDB поддерживаются дескриптором Berkeley DB, разработанным компанией Sleepycat. Дескриптор BDB обеспечивает:
• обработку таблиц с использованием транзакций;
• автоматическое восстановление после сбоев;
О блокирование на уровне страниц, обеспечивающее хорошую производительность при обработке параллельных запросов. Таблицы типа innoDB являются самыми новыми таблицами, недавно добавленными в СУБД MySQL. Этот тип таблиц поддерживается дескриптором innoDB, который был разработан компанией Innobase Oy. Он обеспечивает следующие возможности:
• обработка таблиц с использованием транзакций;
• автоматическое восстановление после сбоев;
• поддержка ключей, в том числе каскадного удаления;
• блокирование на уровне строк, обеспечивающее хорошую производительность при обработке параллельных запросов.
Таблицы могут быть распределены по нескольким файлам или даже разделам, что позволяет выходить за пределы, установленные файловой системой.
Дата добавления: 2016-01-03; просмотров: 614;