У меня есть одна таблица с несколькими миллионами строк, hundres клиентов обращаются к этой таблице одновременно, каждый из них должен получить 20 уникальных строк, которые затем должны быть размещены последними в очереди.Предоставление уникальных результатов для нескольких клиентов одновременно
Моя установка:
Структура таблицы:
id | last_access | reserved_id | [Data columns]
id + last_access is indexed
Для выбора 20 уникальных строк, которые я использую следующее:
UPDATE "table" SET "reserved" = 'client-id_timestamp' WHERE "reserved" = ''ORDER BY "last_access" ASC LIMIT 20
Этот запрос обновления довольно плохой производительности мудрый, который почему я спрашиваю:
Есть ли лучшее решение для моих конкретных требований? Возможно, другая структура таблицы?
Использовать backtics вокруг имен столбцов, а не кавычек - кавычки для строк. –
Это был всего лишь пример, но все равно отметил. – Jeppe