![]() |
Модераторы: skyboy |
![]() ![]() ![]() |
|
Рыжий |
|
|||
![]() Помешанный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1423 Регистрация: 19.9.2004 Репутация: нет Всего: 20 |
Здравствуйте!
Во всех источниках написано, что для хранения данных, InnoDB в файловой системе создает *.frm - файл описания. А хранит данные в каком-то "табличном пространстве". Объясните пожалуйста, что это за пространство и где его найти? ![]() |
|||
|
||||
Бонифаций |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 827 Регистрация: 15.9.2005 Где: Brisbane Репутация: 20 Всего: 40 |
Это файл, где innodb хранит данные. Если Вы посмотрите пример конфигурации, my.cnf, то там будет что то типа
innodb_data_file_path=ibdata1:10M:autoextend Вот это вот и задает "табличное пространство" в файле ibdata1 с начальным размером в 10 мегабайт и возможностью роста файла при необходимости. Табличное пространство можн сделать не только в файле, но и например на голом разделе диска (без файловой системы). -------------------- Бонифаций. |
|||
|
||||
Рыжий |
|
|||
![]() Помешанный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1423 Регистрация: 19.9.2004 Репутация: нет Всего: 20 |
Бонифаций, если я правильно понял - innoDB хранит все данные со всех таблиц/баз в одном месте, в отличие от MyIsam, которая создает 3 отдельных файла для каждой таблицы, у innoDB этот файл и называется "табличным пространством"...
А если размер файла достиг предела - innoDB создает другой файл и продолжает писать в него? |
|||
|
||||
Бонифаций |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 827 Регистрация: 15.9.2005 Где: Brisbane Репутация: 20 Всего: 40 |
При испльзовании innodb есть возможность выбора. - Или все таблицы в одном файле, или каждой таблице по файлу.
При общего файла - можно сделать его расширяемым, либо задать один (или несколько) файлов фиксированного размера (ну или устройство без файловой системы). Если у вас кончилось место в табличном пространстве, innodb автоматически не создаст новый файл. Вам нужно самому в эту строку конфигурации добавить новый файл, и иннодб его проинициализирует и будет использовать. -------------------- Бонифаций. |
|||
|
||||
Рыжий |
|
|||
![]() Помешанный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1423 Регистрация: 19.9.2004 Репутация: нет Всего: 20 |
Бонифаций, Спасибо, за ответы!
Из книги MySQL (Поля Дюбуа):
Если это все хранится в одном файле - у разных ОС есть ограничения на размер файлов, например не более 4 Гб. Что тогда? ![]() Просто хочу разобраться в этом раз и навсегда, а нормального объяснения нигде найти не могу = ( |
|||
|
||||
Рыжий |
|
||||
![]() Помешанный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1423 Регистрация: 19.9.2004 Репутация: нет Всего: 20 |
Вот текст из той же книги, который может ответить на вопрос:
И еще один:
Основные выводы можно сделать - Каждая таблица InnoDB имеет описание *.frm . InnoDB хранит все данные со всех таблиц в одном файле. И называет это табличным пространством. Табличное пространство может быть очень большим, и даже превышать ограничения ОС по размеру фалов (как так?) Или можно устроить индивидуальные файлы для каждой таблицы. ![]() Это сообщение отредактировал(а) Рыжий - 6.9.2009, 15:31 |
||||
|
|||||
Бонифаций |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 827 Регистрация: 15.9.2005 Где: Brisbane Репутация: 20 Всего: 40 |
Табличное пространство - физически просто набор из одного или нескольких файлов. Логически - это одно пространство
Вы можете сделать несколько файлов, каждый из которых меньше 4Г. Но вместе это будет одно табличное пространство.
Не обязательно в одном файле. Может в нескольких. Так было достаточно долго, но была одна проблема - файлы из табличного пространства умеют увеличиваться если надо. Но не умеют уменьшаться. Так что если у вас были большие таблицы, файлы стали большие, а потом вы все эти таблицы удалили - место обратно в файловую систему уже не попадет. Файлы табличного пространства останутся большими. Это не для всех удобно. Поэтому года два назад -сделали такую опцию - что каждая таблица создает свой файл в табличном пространстве. Если вы удаляете таблицу - удаляется этот файл. Многие пользуются. Многие предпочитают по старинке иметь просто один-два больших файла на все таблицы. -------------------- Бонифаций. |
||||
|
|||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | MySQL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |