Я создал таблицу с некоторыми фиктивными данными. Таблица ( ARTICLES ) состоит из id, author_id, заголовка, описания, а таблица ( AUTHOR ) состоит из author_id, name, article_list.
В соответствии с потоком приложений сначала я бы вынул список авторов, это даст мне имя автора, список статей и идентификатор. Когда пользователь перемещается внутри автора, я могу получить список всех статей двумя способами.
Первый
SELECT * FROM articles WHERE author_id = 100;
и, во-вторых, если я сохраню весь список всех статей в форме списка внутри моей таблицы авторов, тогда я смогу использовать
SELECT *
FROM articles
WHERE id IN (100, 1100, 2100, 3100, 4100, 5100, 6100,
7100, 8100, 9100, 10100, 11100, 12100, 13100,
14100, 15100, 16100, 17100, 18100, 19100, 20100,
21100, 22100, 23100, 24100, 25100, 26100, 27100,
28100, 29100, 30100, 31100, 32100, 33100, 34100);
Первый запрос занял 0,0329 с, а второй - 0,0017 с.
Я не могу понять, как это возможно, что первый запрос занимает больше времени, чем второй запрос.
Все, что я знаю, второй запрос будет выполняться как
SELECT *
FROM articles
WHERE id = 100
OR id = 1100
OR id = 2100... and so on