sql >> Databasteknik >  >> RDS >> Mysql

Mysql InnoDB prestandaoptimering och indexering

MD5-hashförslaget du hade är mycket bra - det finns dokumenterat i High Performance MySQL 2nd Ed. Det finns ett par knep för att få det att fungera:

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

Utvalda frågor måste se ut så här:

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

url_crc32 är utformad för att fungera med indexet, inklusive url i WHERE-satsen är utformad för att förhindra hashkollisioner.

Jag skulle nog rekommendera crc32 framför md5. Det kommer att bli några fler kollisioner, men du har större chans att få in hela indexet i minnet.



  1. Finns det ett sätt att beräkna tidsskillnader i MySQL med ett val

  2. SQLBulkCopy med Identity Insert i destinationstabell

  3. java.sql.SQLException:Io undantag:Trasigt rör hur återställer man sig utan omstart?

  4. Infoga datum från formulär med PHP Mysql