Estou fazendo um banco de dados que deve ser capaz de lidar com mais de 1.000.000.000 de linhas.
para otimizar seu desempenho, decidi dividir as tabelas.
então, em vez de ter 1.000.000.000 de entradas em uma tabela por mais de 10 anos, eu dividiria em 3650 tabelas e uma tabela para cada dia.
não haveria mais do que juntar ou união de 2 consultas agora eu quero saber se ter muitas tabelas degradar o desempenho ou não e, em caso afirmativo, quanto?
No geral, a divisão de tabelas adiciona sobrecarga para um benefício percebido que não existe. Tabelas de alguns bilhões de linhas precisam ser cuidadosamente projetadas no que diz respeito ao índice e à normalização, no entanto, a divisão adiciona sobrecargas de computação/software e pode gerar consultas muito piores.
Para responder diretamente à pergunta:
Muitas tabelas no disco não terão impacto no MySQL (a menos que você tenha um sistema de arquivos que não possa abrir rapidamente um nome de arquivo de um diretório muito cheio (mitigado em 8.0 (dados frm no tablespace) e innodb_file_per_table =0).
No que diz respeito às tabelas ativas, aquelas que estão sendo usadas com frequência nas consultas, há efeitos de:
table_open_cache limita o número de tabelas armazenadas em cache e innodb_open_files também .
Exceder esses limites de cache fará com que as tabelas fechem e abram e precisem ser reexaminadas, adicionando sobrecarga às consultas.