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

MySQL - quanto tempo para criar um índice?


Existem alguns fatores a serem considerados:
  • A classificação é uma operação N.log(N).
  • A classificação para 14 milhões de linhas pode caber na memória principal; a classificação com 500 milhões de linhas provavelmente não, então a classificação se espalha para o disco, o que torna as coisas muito mais lentas.

Como o fator tem cerca de 30 em tamanho, o tempo de classificação nominal para o conjunto de big data seria da ordem de 50 vezes mais - menos de duas horas. No entanto, você precisa de 8 bytes por valor de dados e cerca de outros 8 bytes de sobrecarga (isso é um palpite - ajuste o mySQL se você souber mais sobre o que ele armazena em um índice). Portanto, 14M × 16 ≈ 220 MB de memória principal. Mas 500M × 16 ≈ 8 GB de memória principal. A menos que sua máquina tenha tanta memória de sobra (e o MySQL esteja configurado para usá-la), então a grande quantidade está vazando para o disco e isso é responsável por grande parte do resto do tempo.