У меня есть следующая проблема (я дам фактический контекст ниже):
У меня есть серия идентификаторов (конечно, связанные данные с этими идентификаторами, но я дам основную проблему) 1..up до 500000
Теперь они являются последовательными , но они «прибывают» случайным образом, и некоторые из них никогда не могут «прибыть», а другие могут часто встречаться во многих партиях, поэтому они распределены неравномерно (что я имею в виду, когда говорю «Прибытие», я имею в виду как записи в база данных).
Если я создаю какой-то подсчет идентификаторов и их внешний вид, как я могу узнать, сколько правильного количества ведер для модуляции, так что ведра одинаково заполнены?Как я могу вычислить количество ведер в хеше, если я знаю, что распределение будет неравным?
Контекст моей проблемы:
Я читал о hash partitioning
Я думаю, что основное предположение состоит в том, что значения столбцов, которые вы хэш хорошо распределены. Но что произойдет, если в таблице вы не можете разбить на атрибут column /, который хорошо распределен (потому что данные не очень хорошо распределены, например, идентификатор клиента, который покупает больше вещей, чем другие, которые покупают очень мало).
Итак, как это следует обрабатывать? Должен ли диапазон разделов быть небольшим? (Я имею в виду по модулю часть, чтобы быть маленьким, а не большой)
Если у вас уже есть разумный объем данных, почему бы вам не протестировать дистрибутив с помощью серии 'SELECT id_column% @partitions как bucket, COUNT (id_column% @partitions) как cnt GROUP BY (id_column% @partitions) 'и разные значения для переменной' @ partitions'? – VMai
@VMai: Так что '@ partitions' является переменной, например. 4? Вы имеете в виду 'GROUP BY 1'? Итак, по сути, подсчитайте, сколько из них попадает в одно и то же ведро, независимо от того, какие фактические идентификаторы? – Jim
Ну да. Используйте клиент по вашему выбору, то есть phpMyAdmin, MySQL Workbench, ... и выполните: 'SET @partitions = 4;', за которым следует инструкция из последнего комментария, а затем просто измените значение 4 на 5, ... и взгляните на распространение. – VMai