Столбцы разделов в MySQL не ограничены первичными ключами. На самом деле столбец раздела не обязательно должен быть ключом (хотя для него будет создан прозрачный ключ). Вы можете разделить по RANGE, HASH, KEY и LIST (что аналогично RANGE только в том, что это набор дискретных значений). Прочтите руководство по MySQL для , обзор типов разбиения.
Существуют альтернативные решения, такие как HScale - плагин промежуточного программного обеспечения, который прозрачно разделяет таблицы на основе определенных критериев. HiveDB - это платформа с открытым исходным кодом для горизонтального разбиения для MySQL.
В дополнение к разделению и разбиению вы должны использовать некую кластеризацию. Самая простая установка - это установка на основе репликации, которая помогает распределить нагрузку на несколько физических серверов. Вам также следует рассмотреть более продвинутые кластерные решения, такие как кластер MySQL (вероятно, не подходит из-за размера вашей базы данных) и промежуточное программное обеспечение кластеризации, такое как Sequioa .
На самом деле я задал соответствующий вопрос, касающийся масштабирования с MySQL здесь, при переполнении стека, на который я ответил несколько дней спустя, собрав много информации по этому вопросу. Может быть актуальным и для вас.