Я столкнулся с проблемой в моей сборке.
Я использовал очень старый метод для подкачки набора записей, в котором не использовался метод LIMIT.Теперь я использовал метод LIMIT, который очень ускорил мою страницу ... но он затронул другую часть моей страницы, и я слишком уверен, как мне обойти это.
Раньше я хотел бывыполнить запрос, подобный следующему (только пример):
SELECT photoID FROM photoSearch WHERE country = 'London'
Несмотря на то, что этот запрос теперь вернул бы более 69 000 фотографий из Лондона, я бы тогда написал все результатов тезисов (photoID INT INDEX,userID INT INDEX) к таблице (searchResults), поэтому результаты могут быть использованы в других частях страницы.Итак, у меня есть это:
While NOT rs.EOF
INSERT INTO searchResults (photoID, userID) VALUES ("&photoID&","&userID&")
rs.MoveNext
Wend
Хорошо, теперь дальше на мою страницу, я хочу показать список людей на фотографиях вместе с подсчетом, которые находятся в все эти результаты просто сохранены.Это позволяет моему пользователю сузить результаты до чего-то более конкретного.Например, кто-то может искать «Золотой глобус», фотографии возвращаются, и они могут видеть список людей, которые были на «Золотых глобусах», таких как Брэд Питт (8 374), Анджелина Джоли (7 321) и т. Д. И т. Д. Итак, яесть такой запрос, который делает именно это:
SELECT COUNT(*) AS totalPeople, people FROM people
INNER JOIN photopeople ON photoPeople.peopleID = people.PeopleID
INNER JOIN searchPhotoResults ON photopeople.photoid = searchPhotoResults.photoID
GROUP BY people
ORDER BY totalPeople DESC
LIMIT 5
Но теперь, поскольку моя БД выросла за последний год, мой поиск по «Лондон» может вернуть 69 000 строк, поэтому поиск занимает немного больше временистроки и записать строки в мою таблицу результатов.Поэтому мне посоветовали использовать подкачку LIMIT, где вместо возврата 69 000 строк она будет возвращать только сумму, требуемую для этой страницы, например 20.
Теперь я изменил свою страницу, чтобы использовать LIMIT, но, как вы можетевозможно, все получится, я потерял функциональность из списка имен людей, которые посетили это событие.Вместо Брэда Питта (8 374) теперь Брэд Питт (20) и Анджелина Джоли (20) ... что не очень хорошо.
Так что это моя дилемма, которую я хочу (нужно) использоватьLIMIT, чтобы ускорить мою страницу, но он забирает список имен людей, которые я тоже очень хочу.Если я не использую LIMIT, мой поиск будет слишком медленным по более распространенным словам - кажется, я не могу победить!
Есть ли кто-нибудь, кто мог бы посоветовать мне, как обойти это?Надеюсь, я хорошо это объяснил ...