The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"mysql! help!"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"mysql! help!" 
Сообщение от r4 emailИскать по авторуВ закладки(??) on 04-Май-05, 23:37  (MSK)
У меня в локалке крутится самописный файловый поисковик. Так вот мускуль с определённым постоянством(особенно при сильной нагрузке сервера) зависает на очередном запросе с фазой "preparing" в show porocesslist, при этом продолжая отъедать проц. Уже и запросы выстраиваю в очередь, а не обрабатываю параллельно. Всёравно не помогает. Вот запрос:

SELECT url.url,url.server,url.type,url.size FROM filename LEFT JOIN url using(id) WHERE filename.name LIKE "%строка поиска%" LIMIT 300

В show processlist повисший запрос выглядит так:

1097 | poisk    | localhost | poisk    | Query   | 1159 | Preparing          | LOCK TABLES url write,filename write,servers WRITE

Что делать?

  Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

  • mysql! help!, r4, 23:39 , 04-Май-05, (1)  
    • mysql! help!, Simps, 09:28 , 05-Май-05, (4)  
      • mysql! help!, r4, 09:42 , 05-Май-05, (5)  
  • mysql! help!, Асен Тотин, 02:09 , 05-Май-05, (2)  
    • mysql! help!, r4, 09:19 , 05-Май-05, (3)  
      • mysql! help!, Асен Тотин, 12:50 , 05-Май-05, (6)  

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "mysql! help!" 
Сообщение от r4 emailИскать по авторуВ закладки(??) on 04-Май-05, 23:39  (MSK)
сервер версии mysql-4.1.11. Работает всё под FreeBSD-5.3

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "mysql! help!" 
Сообщение от Simps Искать по авторуВ закладки(ok) on 05-Май-05, 09:28  (MSK)
>сервер версии mysql-4.1.11. Работает всё под FreeBSD-5.3

Глянь тут ?
http://mysqld.active-venture.com/SELECT.html на предмет SQL_BUFFER_RESULT
Ну и тут =)
http://mysqld.active-venture.com/LOCK_TABLES.html

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "mysql! help!" 
Сообщение от r4 emailИскать по авторуВ закладки(??) on 05-Май-05, 09:42  (MSK)
>>сервер версии mysql-4.1.11. Работает всё под FreeBSD-5.3
>
>Глянь тут ?
>http://mysqld.active-venture.com/SELECT.html на предмет SQL_BUFFER_RESULT
Хм. Ты думаешь он посылает ответ, поэтому висит? Там нечего особо посылать то, там же limit 300 стоит.

>Ну и тут =)
>http://mysqld.active-venture.com/LOCK_TABLES.html
Такая же ситуация была и когда я не лочил таблиц. Только тогда висли все параллельные запросы :(


  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "mysql! help!" 
Сообщение от Асен Тотин emailИскать по авторуВ закладки on 05-Май-05, 02:09  (MSK)
Привет,

Вариант 1 - у вас возникает race condition между двумя запросами к одним и тем же таблицам. Проверьте что еще крутится в MySQL-е при его зависании.

Вариант 2 - просто у вас громоздкий запрос... LIKE "%строка поиска%" может стоить _очень_ дорого (с точки зрения ресурсов сервера). Даже с помощюь индекса это не побороть... Ищите способы оптимизации запроса - например, сделать это LIKE до вашего LEFT JOIN, или вообще искать другим способом (fulltext search, например).

WWell,

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "mysql! help!" 
Сообщение от r4 emailИскать по авторуВ закладки(??) on 05-Май-05, 09:19  (MSK)
>Привет,
>
>Вариант 1 - у вас возникает race condition между двумя запросами к
>одним и тем же таблицам. Проверьте что еще крутится в MySQL-е
>при его зависании.
  А что такое race condition? Дело в том, чот для того, чтобы избежать параллельности выполнения запросов, каждый запрос лочит таблицы с которыми работает.

>
>Вариант 2 - просто у вас громоздкий запрос... LIKE "%строка поиска%" может
>стоить _очень_ дорого (с точки зрения ресурсов сервера). Даже с помощюь
>индекса это не побороть... Ищите способы оптимизации запроса - например, сделать
>это LIKE до вашего LEFT JOIN, или вообще искать другим способом
>(fulltext search, например).
Я понимаю, это действительно обходится дорого, но оно того стоит. Качество поиска лучше чем у поиска по словам. Когда запрос обрабатывается нормально(не виснет) он обрабатывается секунду-две. Для меня это вполне премлемо.

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "mysql! help!" 
Сообщение от Асен Тотин emailИскать по авторуВ закладки on 05-Май-05, 12:50  (MSK)
Привет,

race condition - это когда два процесса заблокируют друг другу ресурсы... но если у вас _все_ запросы обрабатываются поочередно, то проблемм с этим быть не должно.

>Когда запрос обрабатывается нормально(не
>виснет) он обрабатывается секунду-две. Для меня это вполне премлемо.

Значит все-таки искать что именно тормозит систему - определенный тип запроса (часто встречаемые слова?) или смотреть что произходит с сервером в этот момент (pstree, top, vmstat...)

WWell,

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх


Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ]
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру