Категория: Типы таблиц MySQL (55)
| Типы таблиц MySQL » Ошибки, которые могут возникнуть при использовании таблиц BDB |
7.6.8 Ошибки, которые могут возникнуть при использовании таблиц BDB
Если в `hostname.err log' при запуске mysqld возникла следующая ошибка:
bdb: Ignoring log file: .../log.XXXXXXXXXX: unsupported log version #
это означает, что новая версия BDB не поддерживает старый формат файлов журналов. В этом случае необходимо удалить все файлы журналов BDB из каталога своей базы данных (файлы формата `log.XXXXXXXXXX' ) и перезапустить mysqld. |
|
теги: BDB |
| |
| Типы таблиц MySQL » Ограничения таблиц BDB |
7.6.7 Ограничения таблиц BDB
Ниже приведены ограничения при использовании таблиц BDB:
Таблицы BDB хранятся в файле `.db', который находится в том же каталоге, где был создан (это сделано для того, чтобы была возможность обнаруживать блокировки в многопользовательской среде с поддержкой символических ссылок). |
|
теги: BDB |
| |
| Типы таблиц MySQL » Операционные системы, поддерживаемые BDB |
7.6.6 Операционные системы, поддерживаемые BDB
Если после компиляции MySQL с поддержкой BDB вы получаете следующую ошибку в файле журнала при запуске mysqld:
bdb: architecture lacks fast mutexes: applications cannot be threaded
Can't init dtabases
то это означает, что таблицы BDB не поддерживаются архитектурой вашей системы. В этом случае необходимо перекомпилировать MySQL без поддержки таблиц BDB.
|
|
теги: BDB |
| |
| Типы таблиц MySQL » Что нам нужно исправить в BDB в ближайшем будущем: |
7.6.5 Что нам нужно исправить в BDB в ближайшем будущем:
Процесс одновременного открытия многих таблиц BDB производится очень медленно. Если вы собираетесь применять таблицы BDB, не следует создавать очень большой кэш таблицы (например, больше 256 Кб) и необходимо использовать параметр --no-auto-rehash для клиента mysql. |
|
теги: BDB, TABLE |
| |
| Типы таблиц MySQL » Характеристики таблиц BDB |
7.6.4 Характеристики таблиц BDB
Чтобы обеспечить возможность отката транзакций, для таблиц BDB поддерживается ведение файлов журналов. Для достижения максимальной производительности эти файлы необходимо разместить на разных с базой данных дисках, воспользовавшись параметром --bdb_log_dir. |
|
теги: BDB |
| |
| Типы таблиц MySQL » Параметры запуска BDB |
7.6.3 Параметры запуска BDB
Если запуск производился с параметром AUTOCOMMIT=0, то изменения, сделанные в в таблицах BDB, не вносятся, пока не будет выполнена команда COMMIT. Кроме операции фиксации, можно запустить команду ROLLBACK, чтобы отменить изменения (see section 6.7.1 Синтаксис команд BEGIN/COMMIT/ROLLBACK). |
|
теги: BDB |
| |
| Типы таблиц MySQL » Установка BDB |
7.6.2 Установка BDB
Если вы загрузили бинарную версию MySQL, которая включает поддержку BerkeleyDB, просто выполните инструкции по установке бинарной версии MySQL (см. разделы section 2.2.10 Установка бинарного дистрибутива MySQL и see section 4.7.5 mysqld-max, расширенный сервер mysqld). |
|
теги: BDB |
| |
| Типы таблиц MySQL » Обзор таблиц BDB |
7.6.1 Обзор таблиц BDB
Поддержка таблиц BDB включена в дистрибутив исходного кода MySQL начиная с версии 3.23.34 и в бинарную версию MySQL-Max.
BerkeleyDB, доступный на веб-сайте http://www.sleepycat.com/, обеспечивает транзакционный обработчик таблиц для MySQL. |
|
теги: Sleepycat, BDB |
| |
| Типы таблиц MySQL » Ограничения для таблиц InnoDB |
7.5.14 Ограничения для таблиц InnoDB
Предупреждение: НЕЛЬЗЯ преобразовывать системные таблицы MySQL из формата MyISAM в формат InnoDB! Эта операция не поддерживается, и если попытаться ее осуществить, MySQL не перезапустится, пока не будут восстановлены старые системные таблицы из резервной копии, или пока не будут созданы новые таблицы при помощи скрипта mysql_install_db. |
|
теги: InnoDB |
| |
| Типы таблиц MySQL » Обработка ошибок |
7.5.13 Обработка ошибок
Обработка ошибок в InnoDB не всегда соответствует спецификациям, указанным в стандарте ANSI SQL. В соответствии со стандартом ANSI любая ошибка, произошедшая во время выполнения оператора SQL должна привести к откату оператора. InnoDB иногда осуществляет откат только части оператора или целой транзакции. Особенности обработки ошибок в InnoDB указаны в приведенном ниже списке. |
|
теги: InnoDB, SELECT |
| |
| Типы таблиц MySQL » Дефрагментация таблицы |
7.5.12.3 Дефрагментация таблицы
Если в индексной таблице производились случайные вставки или удаления, индекс может стать фрагментированным. Под фрагментацией мы подразумеваем то, что физическое расположение индексных страниц на диске значительно отличается от алфавитного порядка страниц, или что в 64-страничных блоках много пустых страниц, которые занесены в индекс. |
|
теги: MyISAM |
| |
| Типы таблиц MySQL » Управление файловым пространством |
7.5.12.2 Управление файловым пространством
Табличную область InnoDB составляют файлы данных, определенные в файле конфигурации. Файлы используются последовательно, распределения данных (striping ) по ним не производится. На данный момент вы не можете непосредственно указать, где должны быть размещены таблицы. Можно только воспользоваться знанием того факта, что для вновь созданной табличной области InnoDB будет распределяться место с начала памяти. |
|
теги: InnoDB |
| |
| Типы таблиц MySQL » Дисковый ввод/вывод |
7.5.12.1 Дисковый ввод/вывод
В операциях дискового ввода/вывода для таблиц InnoDB используется асинхронный ввод/вывод. В Windows NT применяется собственный асинхронный ввод/вывод, обеспечиваемый операционной системой, а в Unix - эмуляция асинхронного ввода/вывода, встроенная в InnoDB (InnoDB создает определенное количество потоков ввода/вывода, чтобы обеспечить операции ввода/вывода, такие как опережающее считывание). В будущей версии мы добавим поддержку эмуляции асинхронного ввода/вывода в Windows NT и собственного асинхронного ввода/вывода в тех версиях Unix, в которых он есть. |
|
теги: InnoDB |
| |
| Типы таблиц MySQL » Как работают автоинкрементные столбцы в InnoDB |
7.5.11.5 Как работают автоинкрементные столбцы в InnoDB
Когда пользователь после запуска базы данных осуществляет первую вставку в таблицу T, где определен автоинкрементный столбец, и пользователь не предоставляет конкретного значения для этого столбца, InnoDB выполняет SELECT MAX(auto-inc-column) FROM T, затем присваивает это значение, увеличенное на единицу, столбцу, и автоматически увеличивает счетчик таблицы. Эту последовательность действий мы называем инициализацией счетчика автоматического увеличения для таблицы T. |
|
теги: InnoDB, SELECT |
| |
| Типы таблиц MySQL » Физическая структура записи |
7.5.11.4 Физическая структура записи
У всех записей индекса в InnoDB есть заголовок, состоящий из 6 байтов. Заголовок используется для связывания вместе последовательных записей, а также при блокировке на уровне строк. |
|
теги: InnoDB |
| |
| Типы таблиц MySQL » Адаптивный хешированный индекс |
7.5.11.3 Адаптивный хешированный индекс
Если база данных почти полностью помещается в основной памяти, то самым быстрым способом выполнения запросов по этой базе данных является использование хешированных индексов. В InnoDB существует автоматический механизм, который отслеживает поиск по индексу, осуществляемый по индексам, определенным для таблицы, и если InnoDB посчитает, что запросы выиграют от создания хешированного индекса, такой индекс будет создан автоматически. |
|
теги: InnoDB |
| |
| Типы таблиц MySQL » Буферизация вставок |
7.5.11.2 Буферизация вставок
Нередко в программах для работы с базами данных первичный ключ является уникальным идентификатором и новые строки вставляются в порядке возрастания первичного ключа. Таким образом, вставки в кластеризированный индекс не требуют проведения случайных считываний с диска. |
|
теги: InnoDB |
| |
| Типы таблиц MySQL » Физическая структура индекса |
7.5.11.1 Физическая структура индекса
Все индексы в InnoDB представляют собой B-деревья, в которых записи индексов хранятся в страницах ответвления дерева. По умолчанию размер индексной страницы составляет 16 Кб. При вставке новых записей InnoDB старается оставить 1 / 16 страницы свободной - для будущих вставок и обновлений индексных записей. |
|
теги: InnoDB |
| |
| Типы таблиц MySQL » Структуры таблиц и индексов |
7.5.11 Структуры таблиц и индексов
В MySQL информация словаря данных таблиц хранится в файлах `.frm', расположенных в каталогах баз данных. Но для каждой таблицы InnoDB имеются также свои записи во внутренних словарях данных InnoDB в табличной области. Когда MySQL удаляет таблицу или базу данных, необходимо удалить как файлы `.frm', так и соответствующие записи в словаре данных InnoDB. Именно поэтому нельзя перемещать таблицы InnoDB между базами данных путем простого перемещения файлов `.frm'. По этой же причине DROP DATABASE не работал для таблиц InnoDB в MySQL версий <= 3.23.43. |
|
теги: InnoDB |
| |
|
|