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

MySQL:Optimalt indeks for mellem forespørgsler

Ved ikke hvorfor, men tilføjelse af en ordre efter klausul og grænse til forespørgslen ser ud til altid at resultere i et indekshit og udføres på få millisekunder i stedet for et par sekunder.

explain select * from geo_ip where 2393196360 between start_ip and end_ip order by start_ip desc limit 1;
+----+-------------+--------+-------+-----------------+----------+---------+------+--------+-------------+
| id | select_type | table  | type  | possible_keys   | key      | key_len | ref  | rows   | Extra       |
+----+-------------+--------+-------+-----------------+----------+---------+------+--------+-------------+
|  1 | SIMPLE      | geo_ip | range | start_ip,end_ip | start_ip | 4       | NULL | 975222 | Using where |
+----+-------------+--------+-------+-----------------+----------+---------+------+--------+-------------+

Dette er godt nok for mig nu, selvom jeg ville elske at vide, hvorfor optimeringsværktøjet beslutter sig for ikke at bruge indekset i det andet tilfælde.



  1. Brug af mySql via proxy-kast Forårsaget af:java.sql.SQLEundtagelse:Kaldbare sætninger understøttes ikke. efter gentilslutning

  2. er det en god praksis at bruge mysql_free_result($result)?

  3. Sådan installeres dbWatch for at overvåge MySQL-ydelse i Linux

  4. MySQL char vs. int