Mysql
 sql >> Base de données >  >> RDS >> Mysql

Optimisation et indexation des performances de Mysql InnoDB

La suggestion de hachage MD5 que vous aviez est très bonne - elle est documentée dans High Performance MySQL 2nd Ed. Il existe quelques astuces pour le faire fonctionner :

CREATE TABLE urls (id NOT NULL clé primaire auto_increment,url varchar(255) not null,url_crc32 INT UNSIGNED not null,INDEX (url_crc32));

Les requêtes sélectionnées doivent ressembler à ceci :

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

L'url_crc32 est conçu pour fonctionner avec l'index, y compris l'url dans la clause WHERE est conçu pour éviter les collisions de hachage.

Je recommanderais probablement crc32 plutôt que md5. Il y aura quelques collisions supplémentaires, mais vous avez plus de chances de mettre tout l'index en mémoire.