![]() |
Модераторы: skyboy |
![]() ![]() ![]() |
|
CrackedMind |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 6.2.2006 Репутация: нет Всего: нет |
При использовании InnoDB "движка" появились некоторые вопросы...
Удаляю я все записи из таблицы, размер файла данных таблицы остается прежним, уменьшить его размеры помогают либо ALTER TABLE либо OPTIMIZE TABLE? Почему такое происходит? |
|||
|
||||
Kesh |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2488 Регистрация: 31.7.2002 Где: Германия, Saarbrü cken Репутация: 15 Всего: 54 |
CrackedMind, потому что при этих командах происходит перезапись структуры файла... Соответственно переписывается и сам файл полностью... Попробуй еще TRUNCATE - по идее тоже должен изменять... Все остальные команды инициируют записи в свободное место в файле... Это аналогично занятому месту на жестком диске... Т.е. есть некоторый объем, в который записываются данные, они записываются не последовательно, а в свободное место по всему файлу... Даже так..
Удаленные записи физически не уничтожаются, просто стираются ссылки на них... А новые записи добавляются в конец... Если слишком сумбурно рассказал - пиши, попробую поподробнее... -------------------- ![]() |
|||
|
||||
CrackedMind |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 6.2.2006 Репутация: нет Всего: нет |
ну ведь для MyISAM при DELETE запись физически удаляется, я знаю что при DELETE записи помечаются как удаленные и нужно делать commit; (вроде так
![]()
файлик как был 18 мб так и остался Ж), повторюсь для MyISAM все нормально физически удаляется з.ы. версия MySQL == 5.0.16-nt |
|||
|
||||
Kesh |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2488 Регистрация: 31.7.2002 Где: Германия, Saarbrü cken Репутация: 15 Всего: 54 |
CrackedMind, для InnoDB записи физически не удаляются... Как ты правиль и сказал
Только из самого файла они не стираются... Как с файловой системой... Ты файл удаляешь, он не стирается с диска, но и тебе уже не виден... -------------------- ![]() |
|||
|
||||
CrackedMind |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 6.2.2006 Репутация: нет Всего: нет |
так почему для InnoDB не удаляются, а для MyISAM удаляются? Какая то особенность?
|
|||
|
||||
Kesh |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2488 Регистрация: 31.7.2002 Где: Германия, Saarbrü cken Репутация: 15 Всего: 54 |
CrackedMind, угу... Работают по разному... InnoDB поддерживает транзакции... Кстати, у Oracle тоже в одном файле хранится вся информация, и размер файла тоже не меняется, пока его не забьешь...
Добавлено @ 16:25 Вот здесь описание MyISAM http://www.mysql.ru/docs/man/MyISAM.html А здесь - InnoDB http://www.mysql.ru/docs/man/InnoDB.html -------------------- ![]() |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | MySQL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |