Автор Тема: LIKE и REGEXP в MYSQL  (Прочитано 3082 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Foshvad

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 307
  • +0/-0
  • 0
    • Просмотр профиля
LIKE и REGEXP в MYSQL
« : 01 Февраля 2003, 02:11:35 »
Вопросец.
Можно ли в общем оценить соотношение скоростей обработки MYSQL’ем запросов с REGEXP и с LIKE?

Например, что быстрее будет выполнятся:

SELECT somefield from sometable WHERE somefield REGEXP  ‘*abc*’

и

SELECT somefield from sometable WHERE somefield LIKE ‘%abc%’


обработка порядка 2000-10000 строк.
somefield имеет тип VARCHAR(255), индекс создан

Кстати, кто-нить знает, REGEXP индекс использует?

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
LIKE и REGEXP в MYSQL
« Ответ #1 : 01 Февраля 2003, 02:21:04 »
Цитировать
Можно ли в общем оценить соотношение скоростей обработки MYSQL’ем запросов с REGEXP и с LIKE?

Цитата из мана:
Цитировать
`BENCHMARK(count,expr)\'
     The `BENCHMARK()\' function executes the expression `expr\'
     repeatedly `count\' times.  It may be used to time how fast *MySQL*
     processes the expression.  The result value is always `0\'.  The
     intended use is in the `mysql\' client, which reports query
     execution times:

          mysql> select BENCHMARK(1000000,encode("hello","goodbye"));
          +----------------------------------------------+
          | BENCHMARK(1000000,encode("hello","goodbye")) |
          +----------------------------------------------+
          |                                            0 |
          +----------------------------------------------+
          1 row in set (4.74 sec)

     The time reported is elapsed time on the client end, not CPU time
     on the server end.  It may be advisable to execute `BENCHMARK()\'
     several times, and interpret the result with regard to how heavily
     loaded the server machine is.



Цитировать
Кстати, кто-нить знает, REGEXP индекс использует?
эта информация  вроде в EXPLAIN SELECT должна покзываться
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн AlieN

  • Абыр!=)
  • Ветеран
  • *****
  • Сообщений: 1315
  • +0/-1
  • 2
    • Просмотр профиля
LIKE и REGEXP в MYSQL
« Ответ #2 : 09 Февраля 2003, 08:34:18 »
Цитировать

mysql> select benchmark(100000000,\'select * from anek where anek regexp"%abc%"\'
;
+--------------------------------------------------------------------+
| benchmark(100000000,\'select * from anek where anek regexp"%abc%"\') |
+--------------------------------------------------------------------+
|                                                                  0 |
+--------------------------------------------------------------------+
1 row in set (2.42 sec)

mysql> select benchmark(100000000,\'select * from anek where anek like"%abc%"\');
+------------------------------------------------------------------+
| benchmark(100000000,\'select * from anek where anek like"%abc%"\') |
+------------------------------------------------------------------+
|                                                                0 |
+------------------------------------------------------------------+
1 row in set (2.42 sec)
The Chemical Brothers - Hey Boy Hey Girl (User Friendly Mix)
Peter Presta pres - Set Sail(Peter Presta Apple Jaxx Dub) She S.Sunshine Feat Mila - Bring The Beat Back (Club Mix) Jerry Ropero - Home Alone (Dub Mix)

Оффлайн AlieN

  • Абыр!=)
  • Ветеран
  • *****
  • Сообщений: 1315
  • +0/-1
  • 2
    • Просмотр профиля
LIKE и REGEXP в MYSQL
« Ответ #3 : 09 Февраля 2003, 08:35:28 »
ЗЫ: а если поле еще и индексированное то ваще все летает

(у меня селерон но 1000000 запросов проскакивает за 0.01 с)
!хз почему %)
The Chemical Brothers - Hey Boy Hey Girl (User Friendly Mix)
Peter Presta pres - Set Sail(Peter Presta Apple Jaxx Dub) She S.Sunshine Feat Mila - Bring The Beat Back (Club Mix) Jerry Ropero - Home Alone (Dub Mix)

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28