Медленная выборка из таблиц

12
R
На сайте с 19.07.2010
Offline
64
#11

пацаны не ссорьтесь, лучше подскажите мне правильное решение, а то моё решение с between не совсем меня устраивает

Сейчас его пилю http://newsrbk.ru/ (http://newsrbk.ru/)
dlyanachalas
На сайте с 15.09.2006
Offline
693
#12

Внимательно сейчас посмотрел вашу таблицу:

KEY `id_region_id_category_id_source` (`id_region`,`id_category`,`id_source`),

Вы понимаете, что это не три ключа к каждому из этих полей, а один общий, достаточно бесполезный ключ?

Удаляйте, делайте ключ к каждому из полей, затем берите первый вариант Comodo.

Если будет всё ещё медленно - тогда уже мудрите в сторону временных таблиц.

R
На сайте с 19.07.2010
Offline
64
#13
dlyanachalas:
Внимательно сейчас посмотрел вашу таблицу:



Вы понимаете, что это не три ключа к каждому из этих полей, а один общий, достаточно бесполезный ключ?

Удаляйте, делайте ключ к каждому из полей, затем берите первый вариант Comodo.
Если будет всё ещё медленно - тогда уже мудрите в сторону временных таблиц.

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

C
На сайте с 29.07.2014
Offline
8
#14
dlyanachalas:
Внимательно сейчас посмотрел вашу таблицу:



Вы понимаете, что это не три ключа к каждому из этих полей, а один общий, достаточно бесполезный ключ?

Удаляйте, делайте ключ к каждому из полей, затем берите первый вариант Comodo.
Если будет всё ещё медленно - тогда уже мудрите в сторону временных таблиц.

дак, ключи то у ТСа стоят на каждое из полей

А еще и вот такие


KEY `category_date_source` (`id_category`,`date`,`id_source`),
KEY `region_category_source_date` (`id_region`,`id_category`,`id_source`,`date`),

И т.д.

С какой целью - опять остается гадать.

ув. ТС, я просто не понимаю, зачем тыкать пальцем в небо, если можно посмотреть EXPLAIN и профайлинг запроса?

L
На сайте с 10.02.2015
Offline
260
#15

Было 2.9451, стало 0.0227 сек

Вам еще мало? :)

И, наверно, слишком много индексов у Вас навешено.

R
На сайте с 19.07.2010
Offline
64
#16
livetv:
Было 2.9451, стало 0.0227 сек
Вам еще мало? :)

И, наверно, слишком много индексов у Вас навешено.

удалось ускорить выполнение запроса Отображает строки 0 - 29 (35 всего, запрос занял 0.0018 сек.)

немножко танцы с бубном правда, ну если работает и обрабатывает на 3 секунды быстрее то значит наверное нормально

    $type = 1; 

$d = date('Y-'.$mon.'-d');
$begin = strtotime(($type >= 0 ? '+'.$type : $type).' months', strtotime($d));
$current_month = date('m', $begin);

$date_cond = "AND N.date between '".$year."-".substr('0'.$mon,-2)."-01 00:00:00' AND '".$year."-".$current_month."-01 00:00:00'";
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий