Heim  >  Fragen und Antworten  >  Hauptteil

MySQL-Optimierung – Wie erstelle ich einen Index mit MySQL-Fuzzy-Abfrage und Sortierung nach?

Zum Beispiel gibt es eine MySQL-Anweisung wie diese:

select * from city where city_name like '%hf%' order by created_at;

Wie erstelle ich einen Index für eine solche SQL-Anweisung? Wenn Sie einen zusammengesetzten Index erstellen möchten, verwenden Sie:

key(created_at,city_name)

Da sich „created_at“ vorne befindet, degeneriert es gemäß dem am weitesten links stehenden Matching-Prinzip des Index in „key(created_at)“.

key(city_name,created_at)

Es wird definitiv nicht funktionieren. Die vorherige war eine Fuzzy-Abfrage, und dieser zusammengesetzte Index degenerierte in Schlüssel(stadt). Können wir in diesem Fall nur eine einzige Indexspalte erstellen, um das Problem zu lösen?
Bitte sagen Sie es mir.

高洛峰高洛峰2707 Tage vor939

Antworte allen(1)Ich werde antworten

  • 仅有的幸福

    仅有的幸福2017-06-14 10:52:40

    前后都是%是不走索引的,都没有索引退化的问题,要么改sql成前缀匹配要么加全文索引(对于短字串并不合适),再有就是对于这种基本不变的数据在应用里面是可以放到搜索引擎里的,可以利用到它的分词器检索

    Antwort
    0
  • StornierenAntwort