Разбиение простой таблицы последователей в mysql

#mysql #database #partitioning

#mysql #База данных #разбиение

Вопрос:

Каков наилучший способ разбиения простой таблицы последователей, которая имеет первичный ключ (user_id, follower_id), а также имеет индекс (follower_id)?

Мы делаем запросы select как с user_id, так и с follower_id. Если мы разделим данные на основе user_id, мы не сможем получить полные результаты на основе follower_id из той же таблицы. Дублирование таблицы в отдельные таблицы последователей и разбиение каждой таблицы на основе их собственных первичных ключей казалось вариантом, но мы не уверены в этом.

В настоящее время в таблице содержится 10 миллионов записей, и она быстро растет.

Ответ №1:

PARTITIONing по своей сути не обеспечивает никакого преимущества в производительности. На самом деле, это иногда замедляет обработку. Есть 4 варианта использования, где PARTITION это полезно; ваше описание, похоже, не является одним из них.

Симметрично ли отношение user:: follower? То есть, если я «следую» за вами, вы обязательно «следуете» за мной? (Ответ может привести к другому способу структурирования данных.)

Для отношения «многие: многие», на которое это похоже, следуйте приведенным здесь рекомендациям. Предположительно, у вас есть одна таблица «Users», и связь между этой таблицей и самой собой.

Я (пока) не вижу, где у вас возникнут какие-либо проблемы с отсутствием разделения и таблицей «многие: многие». О чем вы беспокоитесь?

Для дальнейшего обсуждения, пожалуйста, предоставьте предварительные CREATE TABLE и. SELECTs