Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Оптимизация SQL-выражения (sam) 05/08/2014 - 14:46:23



From: sam - 05/08/2014 - 14:46:23
Subject:Оптимизация SQL-выражения
-----------------
Здравствуйте! Есть таблица mysql которая содержит в себе порядка 200,000 записей. Проблема существует в следующем sql-запросе:

$db_result = mysql_query("SELECT id,url,code FROM ".DB_PREFIX."urls WHERE `owner` = '".$_SESSION['id']."' AND `url` LIKE '%$last'");

Все хорошо когда запрос отрабатывается разово, но если php выполняет его в цикле, скажем при поиске 300-400 разных $last то процесс поиска может затянуться на несколько минут, при этом до окончания процесса поиска - подвисает сайт.
Задача моего sql-выражения - найти в столбце url запись, которая оканчиваются на $last.
Столбец url, содержит в каждой записи по одной url-ссылке.
Я использую индексы:

Имя индекса, Тип, Уникальный, Упакован, Столбец, Уникальных элементов, Сравнение, Null
PRIMARY BTREE Да Нет id 191162 A Нет
code BTREE Да Нет code 191162 A Нет
alias BTREE Нет Нет owner 340 A Нет
date_added BTREE Нет Нет date_added 10620 A Нет
url BTREE Нет Нет url 191162 A Нет


Мой my.cnf

[mysqld]
port = 3306
socket = /var/lib/mysql/mysql.sock
skip-locking
key_buffer = 16K
key_buffer_size = 20M
query_cache_size = 10M
innodb_buffer_pool_size = 10M
max_allowed_packet = 4M
table_cache = 40
thread_cache_size = 6
tmp_table_size = 35M
max_heap_table_size = 10M
sort_buffer_size = 512K
read_buffer_size = 256K
read_rnd_buffer_size = 1M
net_buffer_length = 2K
thread_stack = 128K

long_query_time=3
log-slow-queries=/var/log/mysql_long_quarys
log-queries-not-using-indexes

Подскажите, как оптимизировать запрос к БД, что бы избежать "тормозов"?


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
43168



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |