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

Otimização e indexação de desempenho do Mysql InnoDB


A sugestão de hash MD5 que você teve é ​​muito boa - está documentada em High Performance MySQL 2nd Ed. Existem alguns truques para fazê-lo funcionar:

CREATE TABLE urls (id NOT NULL chave primária auto_increment,url varchar(255) não nulo,url_crc32 INT UNSIGNED não nulo,INDEX (url_crc32));

As consultas selecionadas devem ter esta aparência:

SELECT * FROM urls WHERE url='http://stackoverflow.com ' AND url_crc32=crc32('http://stackoverflow.com ');

O url_crc32 é projetado para trabalhar com o índice, incluindo url na cláusula WHERE é projetado para evitar colisões de hash.

Eu provavelmente recomendaria crc32 sobre md5. Haverá mais algumas colisões, mas você tem uma chance maior de ajustar todo o índice na memória.