Фон
Я занимаюсь разработкой веб-платформы для веб-приложений. Одна из ключевых функций этой платформы - управление пользователями. Поэтому я внедрил систему входа в систему, которая позволяет зарегистрированным пользователям войти в платформу и приложение. Это реализовано с использованием базы данных MySQL, которая содержит учетные данные для входа, идентификаторы пользователей, контактную информацию и т. Д. c ...
Проблема
Проблема, которую я Я бегу в это с таблицей пользователей. Эта таблица может быть довольно большой. Таким образом, если администратор хочет отредактировать информацию для определенного пользователя c, в зависимости от того, где пользователь находится в списке, администратору придется прокручивать потенциально тысячи записей, чтобы найти правильную. Я ищу алгоритм, который разделит это на группы размером примерно N и отобразит эти группы в виде диапазонов, по которым администратор может щелкнуть: # 0-B, C -F, GL, MR и т. Д. c ....
Исследование
Это исследование, которое я провел до сих пор:
Раздел базы данных - лучше выполнено PHP или MySQL?
1 очень большой стол или 3 больших стола? MySQL Производительность
В разделе много разделов, которые я нашел в Интернете, чтобы разбить таблицу базы данных, но ничего не касается того, что я пытаюсь сделать.
То, что я сделал до сих пор
Я написал программу, которая работает в автономном режиме с веб-сервера и возвращает счетчики для каждого сегмента 0-9 и AZ. Для значений меньше порогового значения он объединяет сегменты в диапазон и сохраняет их в базе данных. Таким образом, если общее количество сегментов 0-9 и A, B меньше порогового значения, диапазон становится равным # 0-B. У меня возникают проблемы при попытке выяснить, как получить диапазон из корзины, если размер корзины превышает пороговое значение.
Я рассмотрел следующие решения:
- Рекурсивная функция, которая продолжает детализировать имена пользователей, пока они не окажутся в пределах порогового диапазона. Это было бы идеально, если бы я мог заставить его работать.
- Так как он работает в автономном режиме, еще одно решение, которое меня интересует, это загрузка всей корзины в память и разделение ее оттуда. Недостатком этого является потенциальное использование памяти.
- Другая идея, которую я развлекаю, - это вариант №2, который загружает части памяти в память и обрабатывает ее. Это уменьшит использование памяти до более или менее фиксированной величины, но потребует больше времени для обработки.