sql >> Database >  >> RDS >> Mysql

Database-indexen met meerdere kolommen en querysnelheid

Nee. De volgorde van de kolommen in de index is erg belangrijk. Stel dat u een index heeft zoals deze:create unique index index_name on table_name (headline, coupon_code, description,expiration_date) In dit geval gebruiken deze zoekopdrachten de index

select * from table_name where headline = 1
select * from table_name where headline = 1 and cupon_code = 2

en deze zoekopdrachten gebruiken de unieke index niet:

select * from table_name where coupon_code = 1
select * from table_name where description = 1 and cupon_code = 2

Dus de regel is zoiets als dit. Als u meerdere velden samen hebt geïndexeerd, moet u het eerste k-veld opgeven om de index te kunnen gebruiken.

Dus als je wilt kunnen zoeken naar elke een van deze velden moet u op index op elk van hen afzonderlijk (naast de gecombineerde unieke index)

Wees ook voorzichtig met de LIKE-operator.

dit gebruikt index SELECT * FROM tbl_name WHERE key_col LIKE 'Patrick%'; en dit zal niet SELECT * FROM tbl_name WHERE key_col LIKE '%Patrick%';

indexgebruik http://dev.mysql.com/doc /refman/5.0/en/mysql-indexes.html index met meerdere kolommen http://dev.mysql. com/doc/refman/5.0/en/multiple-column-indexes.html




  1. hoe mysql-gegevens naar ElasticSearch realtime te migreren

  2. Unieke beperking over meerdere kolommen

  3. Hoe de tabelnaam te vinden waaruit de afbeelding willekeurig is geselecteerd?

  4. De eerste dag van de week in MySql krijgen met Week No