Используя ADO.NET MySQL Connector, каков хороший способ получения большого количества записей (1000+) по первичному ключу?
У меня есть таблица с несколькими небольшими столбцами и VARCHAR (128) первичный ключ.В настоящее время в нем около 100 тыс. Записей, но в будущем их станет больше.
Сначала я думал, что буду использовать оператор SQL IN:
SELECT * FROM `table` WHERE `id` IN ('key1', 'key2', [...], 'key1000')
Но с этим запросомможет прийти очень долго, а также мне придется вручную экранировать кавычки в ключах и т. д.
Теперь я использую таблицу MySQL MEMORY (tempid
INT, id
VARCHAR (128)) для началазагрузить все ключи с подготовленными инструкциями INSERT.Затем я делаю объединение, чтобы выбрать все существующие ключи, после чего убираю беспорядок в таблице памяти.
Есть ли лучший способ сделать это?
Примечание : Хорошо, возможно, не самая лучшая идея - иметь строку в качестве первичного ключа, но вопрос будет таким же, если столбец VARCHAR будет иметь нормальный индекс.
Временная таблица :Пока что кажется, что решение состоит в том, чтобы поместить данные во временную таблицу, а затем в JOIN, что в основном и делается в настоящее время (см. Выше).