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

Mysql InnoDB ydeevneoptimering og indeksering

Det MD5-hash-forslag, du havde, er meget godt - det er dokumenteret i High Performance MySQL 2nd Ed. Der er et par tricks til at få det til at fungere:

CREATE TABLE urls (id IKKE NULL primær nøgle auto_increment,url varchar(255) ikke null,url_crc32 INT UNSIGNED ikke null,INDEX (url_crc32));

Udvalgte forespørgsler skal se sådan ud:

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

url_crc32 er designet til at arbejde med indekset, inklusive url i WHERE-sætningen er designet til at forhindre hash-kollisioner.

Jeg vil nok anbefale crc32 frem for md5. Der vil være et par flere kollisioner, men du har større chance for at passe hele indekset i hukommelsen.



  1. I hvilken rækkefølge behandles ON DELETE CASCADE-begrænsninger?

  2. Konverter kolonne med månedsnavn og år til heltal med formatet ÅÅÅÅMM i MySQL

  3. MySQL Tæl forskellige værdier fra én kolonne

  4. pg_dump vs pg_dumpall? hvilken skal man bruge til database backup?