Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Design de banco de dados para uma quantidade muito grande de dados


Já que você perguntou sobre como as grandes empresas (geralmente) abordam isso:

Eles geralmente têm um dba (administrador de banco de dados) que vive e respira o banco de dados que a empresa usa.

Isso significa que eles têm pessoas que sabem tudo, desde como projetar as tabelas de maneira otimizada, criar perfis e ajustar as consultas/índices/SO/servidor até saber qual revisão de firmware do controlador RAID pode causar problemas para o banco de dados.

Você não fala muito sobre que tipo de afinação você fez, por exemplo.
  • Você está usando tabelas MyISAM ou InnoDB? Seu desempenho (e não menos importante, seus recursos) é radicalmente diferente para diferentes cargas de trabalho.
  • As tabelas estão indexadas corretamente de acordo com as consultas que você executa?
  • execute EXPLAIN em todas as suas consultas - o que o ajudará a identificar as chaves que podem ser adicionadas/removidas, se as chaves apropriadas forem selecionadas, compare as consultas (o SQL deixa você com muitas maneiras de realizar as mesmas coisas)
  • Você ajustou o cache de consulta? Para algumas cargas de trabalho, o cache de consulta (padrão ativado) pode causar lentidão considerável.
  • Quanta memória sua caixa tem e o mysql está ajustado para tirar proveito disso?
  • Você usa um sistema de arquivos e configuração de raid voltada para o banco de dados?
  • Às vezes, é necessária uma pequena desnormalização.
  • Diferentes produtos de banco de dados terão características diferentes, o MySQL pode ser incrivelmente rápido para alguns Worlkoads e lento para outros.