0

私は最近、EXPLAIN が SQL に提供する情報を活用する方法を発見し、EXPLAIN 句を使用してすべてのクエリを実行し、最適化されていないものがあるかどうかを確認する必要があると考えました。私が持っていることが判明し、それについて何をすべきかわかりません..

このクエリを説明すると

SELECT `id`,`username`,`first_name`,`last_name` 
FROM `users` 
WHERE (`username` LIKE '%kelon%' 
  OR `email` LIKE '%kelon%' 
  OR `first_name` LIKE '%kelon%' 
  OR `last_name` LIKE '%kelon%' 
  OR `facebook` LIKE '%kelon%' 
  OR `twitter` LIKE '%kelon%' 
  OR `skype` LIKE '%kelon%')

ALLこれは明らかにtype最悪のシナリオであり、すべての列にインデックスがあるNULLpossible_keysもかかわらず、私は得ます。数百万レコードの場合に mysql が暴走しないように、この厄介なクエリを最適化するにはどうすればよいですか?

4

1 に答える 1