В момента решаваме схема за разделяне на таблица в нашата MySQL база данни. Имаме множество сегменти и насочваме всички записи на един потребител към един сегмент. Също така искаме да разделим самата таблица по userid. Ние сме малко нови в разделянето и бихме искали обратна връзка относно това кой тип дял да използваме и колко често вероятно ще трябва да поддържаме дяла.
Направихме няколко прости теста, използвайки разделяне по ключ, линеен ключ, хеш и линеен хеш. В нашите тестове изглежда, че хешът е най-бързата опция за вмъкване и също така изглежда, че ни дава най-доброто разпределение, използвайки произволно генерирани потребителски идентификатори. Докато четем документацията обаче, прочетохме, че линейният хеш е по-добър, ако искате да обедините или оптимизирате дялове, но забелязахме, че е много по-бавен при вмъкване. Ние наистина не разбираме защо някога ще трябва да обединяваме или оптимизираме дялове, така че не сме сигурни доколко това трябва да бъде съображение.
Освен това... планираме да използваме максималния брой дялове (мисля 1000), защото не виждаме никакви отрицателни страни в този подход и той трябва да ни даде най-добра производителност, като ограничи броя на записите на дял до максимална степен. Има ли нещо, което трябва да вземем предвид, когато решаваме броя на дяловете или е добре просто да използваме 1000 дяла? Някой има ли съвет по въпроса?