Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Уникальный id для двух таблиц. / 4 сообщений из 4, страница 1 из 1
04.02.2014, 18:24:43
    #38549187
...:::Alex:::...
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Уникальный id для двух таблиц.
Суть такого извращения такая:

есть 2 одинаковых таблицы MyISAM

offers_1
offer_id (primary key)
name

offers_2
offer_id (primary key)
name

В первой таблице скажем каждый день очищается/добавляется около 700 тыс. строк. Вставляется посредством INSERT DELAYED
Во второй таблице данные меняются постоянно, но мало

Подскажите, как будет быстрее сделать поиск по полю name сразу по двум таблицам (union использовать быстро?)
И мне нужен уникальный индекс каждой записи с двух таблиц (может быть случаи что и в первой и во второй будут одинаковые offer_id)
На ум приходит только создать 3ю таблицу такого рода:

offers_key
unique_key (Autoincrement, primary)
offer_id
table_name

Но быстро ли такая работа будет?
...
Рейтинг: 0 / 0
04.02.2014, 18:25:44
    #38549188
...:::Alex:::...
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Уникальный id для двух таблиц.
Забыл добавить: MySQL 5.5
...
Рейтинг: 0 / 0
04.02.2014, 18:26:34
    #38549190
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Уникальный id для двух таблиц.
...:::Alex:::...На ум приходит только создать 3ю таблицу такого рода:Тогда уж слить две исходные таблицы в одну.
...
Рейтинг: 0 / 0
04.02.2014, 18:42:10
    #38549217
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Уникальный id для двух таблиц.
miksoftслить две исходные таблицы в одну.
+1

...:::Alex:::...как будет быстрее сделать поиск по полю name сразу по двум таблицам (union использовать быстро?)
Можно UNION, можно сделать над-таблицу (Merge Engine). По скорости практически одно и то же. Merge даже предпочтительнее, ибо там можно состряпать общий индекс.

...:::Alex:::...мне нужен уникальный индекс каждой записи с двух таблиц (может быть случаи что и в первой и во второй будут одинаковые offer_id)
Ну а если дубль - тебя что, устроит посыл клиента в пешее эротическое? особенно обломавшийся на непонятно которой записи твой INSERT DELAYED? уж лучше разводить коллизии "вручную".

Если навылет не прёт объединить таблицы в одну (возможнор, добавив поле идентификации), можно перекроить данные в таблицах. Выделить заведомо достаточный пул ID-ов для "статичной" таблицы, перенумеровать записи от единицы, и организовать там ручное либо триггерное заполнение поля ID. А для второй таблицы поставить начальный ID выше выделенного пула, тогда при автоприсвоении ID оно не налезет на значения из первой (если не "завернётся"). Но это костыль, причём плохой.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Уникальный id для двух таблиц. / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]