Какъв е оптималният брой дялове за голяма таблица в MySQL

10 ^ 8 реда) - нещо като труп. Таблицата има поле "групиране", въз основа на което се правят селекции. Искам да използвам стандартно разделяне на MySQL, използвайки хеш (групиране на полета). Съответно възниква въпросът: колко дяла трябва да изберете? MySQL позволява до 1024 дяла. Вярно ли е, че колкото повече дялове, на теория, толкова по-висока е производителността, но повече пространство? Или иначе?


И като цяло чух слухове за проблеми във вградения дял на MySQL (внезапно „разпадане“ на дялове при неизвестни обстоятелства), имал ли е някой отрицателен опит с използването на вградения механизъм за разделяне на MySQL?

>> Вярно ли е, че колкото повече дялове, на теория, толкова по-висока е производителността, но повече пространство?

Не, не е вярно. По принцип разделянето е изпълнено с намаляване на производителността. Само в специални случаи може да даде печалба.

Обикновено печалба в производителността се получава при избор от предикат с ниска селективност (висока стойност на съотношението на броя на избраните редове от предиката към броя на редовете в оригиналния набор), за които използването на индекс е по-малко ефективно отколкото пълно сканиране на набора от данни. Ако такъв предикат за избор е включен в ключа за разделяне, колкото повече дялове имаме, толкова по-малко пълно сканиране имаме.