Перейти к контенту
  • 0

очень медленный fulltext поиск


Magiks

Вопрос

Очень медленно выполняется fulltext поиск, пока не придумал способ как решить проблему ((

 

Форум 2.1.7

сервер Core 2 CPU 6600 @ 2.40GHz (1600 MHz) 2 Gb RAM

post-1341-1209530941_thumb.png

 

# Query_time: 8  Lock_time: 0  Rows_sent: 5211  Rows_examined: 10426
SELECT p.pid, p.queued, t.approved, t.forum_id
															FROM ibf_posts p
															 LEFT JOIN ibf_topics t ON ( p.topic_id=t.tid )
															WHERE   t.forum_id IN (42,49,46,43,84,45,44,58,73,74,75,76,77,81,117
,33,31,32,34,35,36,37,38,39,59,86,107,41,94,95,97,98,103,104,26,125,62,66,67,106
,108,100,101,102,56,80,105,113,119,57,1,40,47,50,51,
52,78,89,90,20,118,24,19,4,9,122,123,16,18,7,22,23,8,17,13,10,14,29,60,85,120,69
,70,71,72,55,54,27,2,25,15,126,124,6,82,87,83,88,110
)
															 AND p.queued=0
															  AND MATCH(post) AGAINST ('+rapidshare account' IN BOOLEAN MODE);


# Query_time: 3  Lock_time: 0  Rows_sent: 20  Rows_examined: 55134
SELECT t.*,p.post FROM ibf_topics t  LEFT JOIN ibf_posts p ON ( t.topic_firstpost=p.pid )   WHERE t.forum_id IN( 42,1,58,40,57,47,69
,70,71,72,50,51,52,78,89,90,20,118,49,54,27,2,73,74,75,76,77,81,117,25,15,55,46,
13,10,14,62,29,60,85,120,43,24,56,80,105,113,116,119
,19,4,9,26,16,84,6,33,31,32,34,35,36,37,38,39,59,86,107,82,87,83,88,110,45,23,10
0,101,102,8,94,95,97,98,103,104,17,44,18,7 ) AND t.s
tate != "link" AND t.approved=1 ORDER BY t.start_date DESC LIMIT 0,20;


# Query_time: 10  Lock_time: 0  Rows_sent: 5952  Rows_examined: 12372
SELECT p.pid, p.queued, t.approved, t.forum_id
															FROM ibf_posts p
															 LEFT JOIN ibf_topics t ON ( p.topic_id=t.tid )
															WHERE   t.forum_id IN (42,49,46,43,84,45,44,58,73,74,75,76,77,81,117
,33,31,32,34,35,36,37,38,39,59,86,107,94,95,97,98,103,104,26,125,62,66,67,106,10
8,100,101,102,56,80,105,113,119,57,1,40,47,50,51,52,
78,89,90,20,118,24,19,4,9,122,123,16,18,7,22,23,8,17,13,10,14,29,60,85,120,69,70
,71,72,55,54,27,2,25,15,126,124,6,82,87,83,88,110)
															 AND p.queued=0
															  AND MATCH(post) AGAINST ('+....... Color Correct' IN BOOLEAN MODE)
;

 

вот конфиг mysql

 

[mysqld]

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

default-character-set=cp1251

skip-character-set-client-handshake

character-sets-dir=/usr/share/mysql/charsets

set-variable=max_connection=200

long_query_time=2

log_slow_queries

wait_timeout = 60

skip-innodb

skip-bdb

#skip-locking

 

key_buffer = 384M

max_allowed_packet = 1M

table_cache = 512

sort_buffer = 8M

max_tmp_tables = 64

tmp_table_size = 2M

read_buffer_size = 4M

read_rnd_buffer_size = 8M

myisam_sort_buffer_size = 64M

thread_cache_size = 64

query_cache_size = 16M

join_buffer = 128K

record_buffer = 1M

 

thread_concurrency = 4

 

init-connect=SET NAMES cp1251

default-collation=cp1251_general_ci

Ссылка на комментарий
Поделиться на других сайтах

Рекомендуемые сообщения

  • 0

У меня вопрос не совсем в тему - из каких соображений у вас выставлены такие значения:

tmp_table_size = 2M

record_buffer = 1M

join_buffer = 128K

tmp_table_size по умолчанию в 4.0 и в более поздних версиях равен 32M, почему вы его специально ограничили? Для join_buffer указано дефолтное значение, может, стоит поднять? Какая у вас версия mysql?

 

Второй приведенный вами запрос - это не fulltext поиск.

 

В клиентской части есть тема про sphinx, почитайте, может, вам это подойдет.

http://www.sphinxsearch.com/about.html

http://mods.invisionize.com/db/index.php/f/7031

Изменено пользователем l-k
Ссылка на комментарий
Поделиться на других сайтах

  • 0
Query_time: 8

Query_time: 10

 

это вот так...

 

так это в чём? В попугаях?

 

если в секундах, то я бы не сказал, что это медленно. Сколько у вас строк в ibf_posts?

Ссылка на комментарий
Поделиться на других сайтах

  • 0

на самом деле это очень медленно, а если два-три-пять запросов одновременно... и само собой время в секундах

 

сколько данных показано на рисунке в начале темы... на тот момент 730 тыс постов

 

сегодня установил сфинкса, вроде очень полегчало серверу

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Для 730 тыс. это нормально.

Ещё зависит от камешка/винтов/памяти.

И серв выделенный?

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Song, сервер конечно выделенный... я уже почти всю память mysql отдавал.. но безуспешно... опять таки, со sphinx вроде сервер подуспокоился... но пока только 2 дня тестов
Ссылка на комментарий
Поделиться на других сайтах

  • 0
Можно поробовать потюнить мускул. Ну например выделить побольше памяти, которую мускул отдаёт под загрузку индексов память. Если он весь индекс будет держать в памяти, он не будет перечитывать его с диска и должно быть быстрее.
Ссылка на комментарий
Поделиться на других сайтах

  • 0
по идее, если используете sphinx, то отпадает необходимость держать индекс post (FULLTEXT). Убейте его и база станет значительно меньше, примерно на треть.
Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.