Определено ще започнете да срещате проблеми с тази таблица от 42 GB, след като вече не се побира в паметта. Всъщност, щом вече не се побира в паметта, производителността ще се влоши изключително бързо. Един от начините за тестване е да поставите тази таблица на друга машина с по-малко RAM и да видите колко лошо се представя.
Това е неправилно. Разделянето на дялове (или чрез функцията в MySQL 5.1, или същото нещо, използвайки MERGE таблици) може да осигури значителни ползи за производителността, дори ако таблиците са на едно и също устройство.
Като пример, да кажем, че изпълнявате SELECT заявки във вашата голяма таблица, използвайки период от време. Ако таблицата е цяла, заявката ще бъде принудена да сканира цялата таблица (и при този размер дори използването на индекси може да бъде бавно). Предимството на разделянето е, че вашите заявки ще се изпълняват само на дяловете, където е абсолютно необходимо. Ако всеки дял е с размер 1 GB и вашата заявка трябва да има достъп само до 5 дяла, за да се изпълни, комбинираната таблица от 5 GB е много по-лесна за работа за MySQL, отколкото с чудовищна версия от 42 GB.
Едно нещо, което трябва да се запитате, е как правите заявки за данните. Ако има вероятност вашите заявки да имат нужда само от достъп до определени части от данни (т.е. период от време или диапазон на идентификатори), някакво разделяне ще се окаже полезно.
Чух, че все още има известна грешка с MySQL 5.1 разделянето, особено свързано с избора на правилния ключ на MySQL. Таблиците MERGE могат да предоставят същата функционалност, въпреки че изискват малко повече разходи.
Надявам се това да помогне...успех!