Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Hastur
Зарегистрирован: 14.06.2007 Сообщения: 24
|
Добавлено: Ср Янв 16 2008 17:48 Заголовок сообщения: Переиндексация Базы Данных |
|
|
Я вообще не уверен что эта операция над БД называется переиндексацией. Суть в общем такова - в нескольких таблицах БД есть автоинкрементные поля, через какой-то промежуток работы базы получается ситуёвина когда индексы становятся очень большими но при это в следствие удаления некоторых картежей пропущено много промежуточных номеров. Вот я и хочу сделать переиндексацию чтобы нормализовать индексы а т.к. почти всегда такие поля являются ключевыми и переходят во многии другие таблицы как вторичные ключи то придётся изменять очень много данных в разных таблицах. Думается что это будет довольно долго и муторно в смысле разработки такой операции.
Кто-нибудь решал такую задачу? Поделитесь опытом плз |
|
Вернуться к началу |
|
|
mad_alexx
Зарегистрирован: 14.01.2005 Сообщения: 154 Откуда: Иркутск
|
Добавлено: Ср Янв 23 2008 06:23 Заголовок сообщения: |
|
|
Конкретная реализация зависит от СУБД. Например, для MySQL можно сделать так:
Код: |
create table tbl1 (
id int unsigned not null primary key auto_increment,
s varchar(10)
);
create table tbl2 (
id int unsigned not null primary key auto_increment,
s varchar(10)
);
добавить/удалить в tbl1
insert into tbl2 (s) select s from tbl1 order by id; | .
Так мы перенесём данные из таблицы tbl1 в таблицу tbl2, причём id будет увеличиваться последовательно. Потом удалить tbl1 и аналогично перенести из tbl2 в tbl1. |
|
Вернуться к началу |
|
|
|