Осколок mysql текстовое поле - PullRequest
0 голосов
/ 18 апреля 2020

Мне нужно осколить поле варчара некоторым количеством осколков. Например, если бы у меня было поле pk с автоинкрементом, я мог бы сделать:

SELECT * FROM table WHERE id % num_shards = NUM

Однако у меня нет текстового поля, поэтому я надеюсь, что смогу получить какую-то цифру c вывод из поля - текст engli sh и довольно равномерно распределен. Возможно я мог сделать md5 поля и получить значение int этого? Я попытался сделать:

# needs to be sharded by 'hour of the week'
SELECT field FROM table where CAST(MD5(field) AS UNSIGNED) % 177 = 6

Это выглядит очень равномерно распределенным ... за исключением 0, где в итоге получается около половины значений. Что было бы лучшим вариантом?

...