MySQL-Optimierung – Wie erstelle ich einen Index mit MySQL-Fuzzy-Abfrage und Sortierung nach?
高洛峰
高洛峰 2017-06-14 10:50:40
0
1
985

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.

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

Antworte allen(1)
仅有的幸福

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

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage