Quando um NÃO deseja particionar um banco de dados? (pensando no particionamento do MySQL )
No meu caso
- Vou começar com alguns milhões de linhas, deve crescer a partir daí.
- Chave primária em um campo de caractere que serve como a restrição de consulta mais frequente (e as pesquisas são frequentes - pelo menos algumas por segundo).
- A chave primária seria hash para servir como chave de partição
- Serão feitas atualizações em todas as linhas extraídas das consultas frequentes mencionadas acima
- Pesquisas menos frequentes (em colunas de data ou outras) precisarão atingir todas as partições
Mesmo para o último ponto, a pesquisa não ocorre paralelamente e, em todos os casos, isso é uma vitória ? Quais são as desvantagens do particionamento? Por que não é algo que TODOS usam por padrão, pelo menos quando você está vendo mais de um milhão de registros?
ATUALIZAÇÃO - Selecionei a resposta do zgguy, mas observe que adicionei minha própria resposta aos resultados de minha própria pesquisa, incluindo um link para uma resposta realmente boa em uma pergunta semelhante que foi muito útil para mim.
fonte
A resposta aqui é bem escrita e apresenta argumentos semelhantes à resposta do zgguy , que o particionamento não lhe traz muitos benefícios, se houver algum, para um cenário de máquina única, onde as pesquisas mais frequentes são baseadas na chave primária ou algo semelhante (porque pesquisas indexadas devem ser igualmente rápidas).
De fato, um conselho comum parece ser que o principal motivo para particionar é tangencial e principalmente relacionado ao gerenciamento: por exemplo, separe seus dados com base na data, se você precisar limpar registros antigos de vez em quando. Embora tenha sido observado que isso também pode beneficiar o desempenho da pesquisa se os dados forem tais que quase todas as consultas atinjam apenas registros adicionados recentemente.
Também vi menção de que o MySQL nunca faz nada em paralelo (seria bom ver alguns links ou mais explicações sobre isso).
Ninguém viu falar se a atividade de gravação adiciona ou não considerações diferentes.
fonte
A primeira coisa que vem à mente é a poda de partição ; se isso não for algo que suas consultas possam usar.
Você precisará remover grande quantidade de dados da tabela, pois o particionamento o ajudaria. Embora antigo, mas este post de Peter tem alguns pontos a considerar.
e outra coisa em que podemos pensar é a facilidade de uso para tabelas simples ... o particionamento precisa de trabalho e manutenção adicionais.
fonte