6ответ(ов) в теме
Preci
не в сети 2 месяца
На сайте с 11.11.2014
Участник
Тем 71
Сообщения 1644
1
13:32
Версия WP-Recall: 16.16
Версия дополнения: 3.1.0

1. В index.php плагина есть екшен

add_action( 'wp', 'rcl_add_data_rating_posts');

Функция, которую он вызывает, срабатывает в архиве и в категориях, создает 3 запроса в базу и ничего не возвращает. Незнаю зачем она, переменные которые она создает - не глобальные, а в переменную wp_query, которая там используется - ничего не пишется. Вообщем ее надо либо удалить, либо доделать, я не понял зачем она.

2. При активации плагин создает таблицы и добавляет к ним PRIMARY KEY id (id). Но столбца id нету, есть ID. Надо исправить на PRIMARY KEY id (ID)

3. Нужно добавить индексы в таблицы.
Таблица rating_totals

Запрос с рандомным ID объекта

SELECT rcl_rating_totals.rating_total FROM ***_rating_totals AS rcl_rating_totals WHERE rcl_rating_totals.object_id = '1335692' AND rcl_rating_totals.rating_type = 'post' ORDER BY rcl_rating_totals.ID DESC LIMIT 0,30

Выполняется 0.1с.

Если добавить в таблицу индекс для столбца object_id, то такой же запрос с рандомным ID объекта выполняется 0.0005с

Таблица rating_values

Так же популярный запрос

SELECT rcl_rating_values.rating_value FROM ***_rating_values AS rcl_rating_values WHERE rcl_rating_values.user_id = '1' AND rcl_rating_values.object_id = '136186' AND rcl_rating_values.rating_type = 'post' ORDER BY rcl_rating_values.ID DESC LIMIT 0,30

Выполняется 0.1с.

Если добавить индекс для двух столбцов user_id и object_id то запрос выполняется 0.0005с

Проблемы с такими запросами возникает только при первом открытии страницы, т.е. затем база уже кеширует ответ и проблемы нет, но если двигаться от одной записи к другой, то эти запросы накидывают по 0.2-0.3с к генерации. Если добавить индексы, то такой проблемы нет.

Может быть это только у меня конечно, но индексы в любом случае не помешают.

1
Preci
не в сети 2 месяца
На сайте с 11.11.2014
Участник
Тем 71
Сообщения 1644
2
14:25

Хотя индексы может и не надо добавлять (кроме фикса PRIMARY KEY). Ибо если активности мало, то записей в таблицах мало, а значит проблем не будет и индексы будут бесполезны

0
Андрей CS
не в сети 12 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16925
3
15:22

Preci сказал(а)
Незнаю зачем она

она затем, чтобы добавить в глобальный массив записей данные о рейтинге этих публикаций, делаем три запроса вместо 30 на 10 записей, тут если только эти три запроса объединить, реализацию предлагай, если будет лучше - сделаем.

Preci сказал(а)
Нужно добавить индексы в таблицы.

а разве индексы не добавляются?

ID BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
object_id BIGINT(20) UNSIGNED NOT NULL,
object_author BIGINT(20) UNSIGNED NOT NULL,
rating_total VARCHAR(10) NOT NULL,
rating_type VARCHAR(20) NOT NULL,
PRIMARY KEY  id (id),
  KEY object_id (object_id),
  KEY object_author (object_author),
  KEY rating_type (rating_type),
  KEY rating_total (rating_total)

0
Андрей CS
не в сети 12 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16925
4
15:23

Надо исправить на PRIMARY KEY id (ID)

не думаю, все вполне нормально индексируется

0
Preci
не в сети 2 месяца
На сайте с 11.11.2014
Участник
Тем 71
Сообщения 1644
5
15:31

Андрей CS сказал(а)
она затем, чтобы добавить в глобальный массив записей данные о рейтинге этих публикаций, делаем три запроса вместо 30 на 10 записей, тут если только эти три запроса объединить, реализацию предлагай, если будет лучше - сделаем.

Ясно, ну значит только мне оно не надо т.к. не выводится ничего из того что функция делает

Андрей CS сказал(а)
не думаю, все вполне нормально индексируется

У меня в базе почему то не было у этих таблиц вообще индекса никакого. Все стирать что бы проверить, я, конечно же, не буду. Но если добавляется то ок, тогда можно закрыть тему

0
Андрей CS
не в сети 12 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16925
6
15:34

Preci сказал(а)
У меня в базе почему то не было у этих таблиц вообще индекса никакого

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

0
Вы не имеете права на публикацию сообщений в этой теме