Mysql
 sql >> Database >  >> RDS >> Mysql

Ottimizzazione e indicizzazione delle prestazioni di Mysql InnoDB

Il suggerimento di hash MD5 che hai avuto è molto buono:è documentato in High Performance MySQL 2nd Ed. Ci sono un paio di trucchi per farlo funzionare:

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

Le query selezionate devono essere simili a questa:

SELEZIONA * DA URL DOVE url='http://stackoverflow.com ' AND url_crc32=crc32('http://stackoverflow.com ');

url_crc32 è progettato per funzionare con l'indice, incluso l'URL nella clausola WHERE è progettato per prevenire collisioni di hash.

Probabilmente consiglierei crc32 su md5. Ci saranno alcune altre collisioni, ma hai maggiori possibilità di adattare tutto l'indice in memoria.