sql >> Databáze >  >> RDS >> Mysql

Vyhledávací dotaz necitlivý na důraz v MySQL

Řazení můžete změnit za běhu v dotazu SQL,

...where title like '%torun%' collate utf8_general_ci

ale mějte se na pozoru, že změna řazení za chodu za běhu se vzdává možnosti mysql pomocí indexu, takže výkon na velkých tabulkách může být hrozný.

Nebo můžete sloupec zkopírovat do jiného sloupce, například searchable_title , ale změňte na něm řazení. Ve skutečnosti je běžné dělat tento typ věcí, kdy kopírujete data, ale máte je v nějaké trochu jiné formě, která je optimalizována pro určité konkrétní pracovní zatížení/účel. Spouštěče můžete použít jako příjemný způsob, jak synchronizovat duplicitní sloupce. Tato metoda má potenciál dobře fungovat, pokud je indexována.

Poznámka – Ujistěte se, že vaše db skutečně obsahuje tyto znaky a ne entity html. Záleží také na znakové sadě vašeho připojení. Výše uvedené předpokládá, že je nastaveno na utf8, například přes set jména jako set names utf8

Pokud ne, potřebujete úvodníka pro doslovnou hodnotu

...where title like _utf8'%torun%' collate utf8_general_ci

a samozřejmě hodnota v jednoduchých uvozovkách musí být ve skutečnosti zakódována utf8, i když zbytek dotazu sql není.



  1. Jak zajistit pravidelné zálohování databází

  2. Optimalizace TempDB:Předcházení úzkým místům a problémům s výkonem

  3. Co je lepší - mnoho malých stolků nebo jeden velký stůl?

  4. MySQL Group od SUM