Несколько мыслей -
MySQL достаточно умны, чтобы справиться с этими много записей. Вы можете прочитать всех пользователей и их книги в одном запросе, а затем отобразить их, как вы пожелаете. Тем не менее, показ тех многих записей на одной веб-странице повлияет на время ответа.
Отсюда следует разбиение на страницы - чтение ограниченных записей на странице. Хотя это будет означать SQL-запрос на страницу, но все же оптимизирован. И, конечно, вы можете использовать кеширование запросов.
Лучшим вариантом может быть отображение алфавитного списка пользователей, не обязательно A-Z, но также как AB, AC, AD и т. Д. Таким образом, ваши посетители могут сразу перейти к определенному списку. Подумайте о добавлении разбивки на страницы, если количество пользователей в данном списке слишком велико.
Я не уверен, насколько важно, чтобы ваш сайт показывал последние обновления как можно скорее, но вы также можете подумать о создании XML-файлов, сколько вам необходимо, например, в алфавитном порядке и сгенерировать свои веб-страницы из XML файлы. Вы можете обновлять эти файлы XML один раз каждые 24 часа. Таким образом, минимальная загрузка БД.
И, пожалуйста, подумайте о создании поиска, потому что перемещение по этим многочисленным пользователям может быть обескураживающим.
Надеюсь, это поможет!
Вы хотите отобразить 5 миллионов записей? –
Вы ДОЛЖНЫ разделять данные на более мелкие куски. – methyl
Вы действительно хотите отобразить всех пользователей и их книги на одной странице? – afaf12