MySQL

:: DEVELOPER ZONE

Login / Register

  • MySQL.com
  • Developer Zone
  • Partners
  • Online Shop
  • Downloads
  • Documentation
  • Forums
  • Lists
  • Bugs
  • Events
  • User Groups
  • Guilds
  • Blogs
  • Support
  • Resources
  • Books
  • FAQ

Справочное руководство по MySQL 4.0. :: 7 Типы таблиц MySQL :: 7.5 Таблицы InnoDB :: 7.5.10 Структуры таблиц и индексов

  • Overview
  • MySQL Reference Manual
  • MaxDB Documentation
  • Connectors

Search the MySQL manual:


  • Справочное руководство по MySQL 4.0.

  • 7.5 Таблицы InnoDB
  • 7.5.1 Обзор таблиц InnoDB
  • 7.5.2 Параметры запуска InnoDB
  • 7.5.3 Создание табличной области InnoDB
  • 7.5.4 Создание таблиц InnoDB
  • 7.5.5 Добавление и удаление файлов данных и журналов InnoDB
  • 7.5.6 Создание резервных копий и восстановление баз данных InnoDB
  • 7.5.7 Перенесение базы данных InnoDB на другой компьютер
  • 7.5.8 Транзакционная модель InnoDB
  • 7.5.9 Реализация многовариантности
  • 7.5.10 Структуры таблиц и индексов
    • 7.5.10.1 Физическая структура индекса
    • 7.5.10.2 Буферизация вставок
    • 7.5.10.3 Адаптивный хешированный индекс
    • 7.5.10.4 Физическая структура записи
    • 7.5.10.5 Как работают автоинкрементные столбцы в InnoDB
  • 7.5.11 Управление файловым пространством и дисковый ввод/вывод
  • 7.5.12 Обработка ошибок
  • 7.5.13 Ограничения для таблиц InnoDB
  • 7.5.14 История изменений InnoDB
  • 7.5.15 Контактная информация для получения данных по InnoDB

Get the MySQL Language Reference and MySQL Administrator's Guide from MySQL Press!


Additional languages

  • German


Learn about new MySQL releases, technical articles, events and more.

Subscribe to the monthly MySQL Newsletter!


Previous / Next / Up / Table of Contents

7.5.10. Структуры таблиц и индексов

7.5.10.1. Физическая структура индекса
7.5.10.2. Буферизация вставок
7.5.10.3. Адаптивный хешированный индекс
7.5.10.4. Физическая структура записи
7.5.10.5. Как работают автоинкрементные столбцы в InnoDB

В MySQL информация словаря данных таблиц хранится в файлах .frm, расположенных в каталогах баз данных. Но для каждой таблицы InnoDB имеются также свои записи во внутренних словарях данных InnoDB в табличной области. Когда MySQL удаляет таблицу или базу данных, необходимо удалить как файлы .frm, так и соответствующие записи в словаре данных InnoDB. Именно поэтому нельзя перемещать таблицы InnoDB между базами данных путем простого перемещения файлов .frm. По этой же причине DROP DATABASE не работал для таблиц InnoDB в MySQL версий <= 3.23.43.

Для всех таблиц InnoDB есть специальный индекс, в котором хранятся данные строк - он называется кластеризованным индексом. Если в таблице определить PRIMARY KEY, то индекс первичного ключа будет кластеризированным индексом.

Если первичный ключ для таблицы не определен, то InnoDB самостоятельно создаст кластеризированный индекс; строки в этом индексе будут упорядочены по идентификатору строки, который InnoDB назначил строкам этой таблицы. Идентификатор строки представляет собой 6-байтовое поле, значение которого постоянно увеличивается при вставке новых строк. Таким образом, сортировка по идентификатору строки фактически представляет собой сортировку по последовательности вставки.

Доступ к строке через кластеризированный индекс осуществляется достаточно быстро, поскольку данные строки находятся на той же странице, к которой приводит поиск по индексу. Во многих базах данных информация и индексная запись традиционно хранятся на разных страницах. При больших размерах таблицы архитектура кластеризированных индексов часто позволяет сократить количество дисковых операций ввода/вывода по сравнению с традиционными решениями.

Записи в некластеризированных индексах (мы называем их также вторичными индексами), в InnoDB содержат значение первичного ключа для строки. InnoDB использует этот значение первичного ключа для поиска строки в кластеризированном индексе. Следует учитывать, что если первичный ключ достаточно велик, вторичные индексы будут занимать больше места.


This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.

Top / Previous / Next / Up / Table of Contents

© 1995-2005 MySQL AB. All rights reserved.

  • About MySQL
  • Careers
  • Site Map
  • Contact Us
  • Legal
  • Privacy Policy
  • Trademark Info
  • No Software Patents!