Você pode usar tabelas de mesclagem, porém elas são mais antiquadas das versões 4.x. Dado que seu aplicativo é particionado manualmente, é porque a) você está executando uma versão muito antiga ou b) o desenvolvedor original não estava ciente das partições da tabela.
Em resumo, se você estiver executando o 5.1+, pode deixar o mysql fazer esse particionamento para você. Consulte
http://dev.mysql.com/doc/refman/5.1/en/partitioning.html Se você estiver usando o 5.5, verifique esses documentos específicos, pois encontrará algumas diferenças.
Há muitas vantagens em particionar. No entanto, depende realmente do conjunto de dados disponível, dos padrões de acesso e de como ele deve ser indexado. Além disso, lembre-se de que meus comentários a seguir estão no contexto do particionamento do mysql 5+, NÃO das tabelas de mesclagem mysql mais antigas; embora às vezes sejam discutidos em termos de partições.
Alguns exemplos:
- Balde direto (ou hash) com base na chave de pesquisa acessada com freqüência. Se você está sempre procurando por uma chave primária ou outra chave exclusiva, o mysql pode reduzir o espaço de pesquisa por um fator de quantas partições você possui. Observe, no entanto, que isso pode ser prejudicial se você particionar por uma chave e, em seguida, pesquisar com frequência por outra chave. Se você pesquisar por uma chave, os dados não serão particionados, ele deverá realizar MAIS pesquisas em pesquisas (uma para cada partição, francamente, não sabe onde estão os dados)
- Considere as situações em que você possui um conjunto temporal de registros que cresce por data e remove periodicamente o mês anterior. Se você estiver particionando por data, poderá simplesmente soltar uma partição que é tão rápida quanto soltar uma tabela, não importa o tamanho. Se você pudesse remover essa tabela por datas, seria necessário emitir uma ou mais consultas DELETE em que cada linha individual é excluída. A desvantagem disso é que o mysql não cria automaticamente novas partições depois que você atinge a data máxima que contabilizou neste cenário; você precisa de scripts de manutenção extras construídos de sua parte para adicionar partições conforme necessário.
- Se você estiver usando myisam, as verificações e recuperações serão muito mais rápidas. Considere uma tabela 100G de myisam. Se você quiser recuperar uma tabela com falha, precisará de pelo menos 100 G de espaço livre em disco. Se ele foi particionado em 10 partes diferentes de tamanho igual, você precisará apenas de 10G de espaço (e menos memória key_sort_buffer para recuperação rápida); mas precisaria fazer uma iteração para cada partição.
Portanto, em resumo, a abordagem geral das tabelas de particionamento pode oferecer muitos benefícios. No entanto, não é uma bala mágica a ser aplicada às cegas, sem considerar os padrões de acesso e o quão exatamente você está particionando.
Eu poderia imaginar situações em que o particionamento desejado é muito específico do aplicativo e seria mais adequado para ter essa lógica na camada do aplicativo. No entanto, dada sua descrição direta do módulo 10, isso não parece ser o caso.
EDITAR
Ao escrever minha descrição, esqueci que você declarou que sua tabela tem 100K linhas. Sem o esquema completo da sua tabela e com o comprimento médio da linha, é difícil dizer com certeza, mas em geral isso soa de tamanho médio, mesmo para hardware modesto. Ao mesmo tempo, se não estiver causando problemas do jeito que está agora ou no futuro próximo, não gaste tempo e introduza riscos alterando-o.