Настройка и настройка базы данных MySQL для хранения информации о миллиардах уникальных URL-адресов

#php #mysql #sql #database #database-design

#php #mysql #sql #База данных #база данных-дизайн

Вопрос:

Я создаю приложение, которое каждую неделю хранит новую информацию, состоящую из целых чисел размером 10 X 12 для миллионов уникальных URL-адресов. Мне нужно извлечь информацию за определенную неделю или за определенный диапазон недель для данного URL. Я собираюсь использовать MySQL в качестве базы данных.

Совет: Для упрощения группировка URL-адресов по доменам уменьшит объем данных, обрабатываемых при запросе.

Мне нужен совет по структурированию базы данных для быстрого выполнения запросов, которая требует оптимальной вычислительной мощности и дискового пространства.

Ответ №1:

Поскольку никто еще не попробовал, вот мой совет.

Для начала проигнорируйте «быстрое выполнение запросов, требующее оптимальной вычислительной мощности и дискового пространства». Поиск этого в начале никуда вас не приведет. Спроектируйте и создайте разумную базу данных, соответствующую вашим функциональным требованиям. Загружайте случайные данные, пока не получите примерно ожидаемый объем. Запускайте запросы к ней и определяйте их время.

Если ваша база данных нормализована должным образом, занимаемое ею дисковое пространство также будет приблизительно сведено к минимуму. Запросы могут быть медленными: используйте планы выполнения, чтобы понять, почему они медленные, и добавьте индексы, чтобы повысить их производительность. Как только вы получите приемлемую производительность, вы на месте.

Суть в стандартной поговорке: не оптимизируйте, пока не узнаете, что у вас есть проблема, и не измерите ее.

Комментарии:

1. Спасибо за ваш комментарий, Саймон. Я воспользуюсь вашим советом. Я сначала запрограммирую его, а затем измерю и оптимизирую его позже во время тестирования с тестовыми данными 🙂