Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как быстро добавить поле со значениями в большую таблицу?

3.2K
26 сентября 2008 года
MasterKlass
47 / / 06.03.2005
Есть таблица t1:
id - primary, int
text - text
url - text

Таблица сильно разрослась. Получалось, что в поле "url" могло много раз повторяться одно и то же значение, что ни разу не экономило место. Было бы логично, создать таблицу t2:
id_url - primary
url - unique
, где соответственно хранить эти значения уникально, а в таблицу t1 только идентификатор засовывать.
Понадобилось добавить поле "id_url", в котором будет храниться уникальный идентификатор для "url" и удалить поле "url":
id - primary, int
text - text
id_url - int

Таблицу t2 создал. Это легко. А дальше как?
Надо тупо пробежать по таблице t2 и обновлять таблицу t1:

UPDATE t1 SET t1.id_url = SELECT t2.id_url WHERE t2.url

Только это оооочень долго получается. Есть быстрее способы?

надеюсь вы поймете и поможете =)
1
26 сентября 2008 года
kot_
7.3K / / 20.01.2000
Цитата: MasterKlass
Есть таблица t1:
id - primary, int
text - text
url - text

Таблица сильно разрослась. Получалось, что в поле "url" могло много раз повторяться одно и то же значение, что ни разу не экономило место. Было бы логично, создать таблицу t2:
id_url - primary
url - unique
, где соответственно хранить эти значения уникально, а в таблицу t1 только идентификатор засовывать.
Понадобилось добавить поле "id_url", в котором будет храниться уникальный идентификатор для "url" и удалить поле "url":
id - primary, int
text - text
id_url - int

Таблицу t2 создал. Это легко. А дальше как?
Надо тупо пробежать по таблице t2 и обновлять таблицу t1:

UPDATE t1 SET t1.id_url = SELECT t2.id_url WHERE t2.url

Только это оооочень долго получается. Есть быстрее способы?

надеюсь вы поймете и поможете =)



Вам нужно выполнить эту операцию один раз. В чем проблема то? проиндексируйте поле url в первой таблице и выполните.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог