sql >> Databáze >  >> RDS >> Mysql

Optimalizace výkonu a indexování Mysql InnoDB

Návrh hash MD5, který jste měli, je velmi dobrý – je zdokumentován v High Performance MySQL 2nd Ed. Aby to fungovalo, existuje několik triků:

CREATE TABLE url (primární klíč id NOT NULL auto_increment,url varchar(255) not null,url_crc32 INT UNSIGNED not null,INDEX (url_crc32));

Vybrané dotazy musí vypadat takto:

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

Url_crc32 je navržen pro práci s indexem, včetně adresy URL v klauzuli WHERE je navržena tak, aby zabránila kolizím hashů.

Pravděpodobně bych doporučil crc32 přes md5. Dojde k několika dalším kolizím, ale máte větší šanci, že se celý index vejde do paměti.



  1. Jak vrátit pole při použití GROUP BY

  2. ORDER BY datetime velmi zpomaluje dotaz

  3. SUM data po GROUP_CONCAT s mySQL

  4. Existuje funkce MD5 Sum v PL/SQL