Размеры индексов БД для logstore_standard_log

Re: Размеры индексов БД для logstore_standard_log

от Виталий Лавров -
Количество ответов: 0
Изображение пользователя Эксперт по Moodle
Спасибо за подсказку про get_events_*
grep -sIR get_events_select|egrep -v '(/tests/|store.php)'  дает более интересный вывод.

Вместо одной таблицы писать две? На продакшене? Тонко улыбаюсь
Я бы просто удалил индексы course-time и user-module, а вместо них добавил бы индекс для courseid и userid

Вся аналитика подождет и там почти все запросы ограничены либо timecreated, либо userid, либо courseid. (lib/classes/analytics/indicator/)
В course/lib.php есть только запрос числа событий в can_delete_course, что не часто вызывается

В dboptions есть параметр "log_all" - это конечно только для разработчиков, но если в log_query добавить 4 строк кода, то можно дешево получить определенные запросы

if(!empty($this->dboptions['logall_re'])) {
  if(preg_match($this->dboptions['logall_re'],$this->last_sql))
     error_log("query_log $logall_re ".$this->last_sql."\n",3,"/tmp/moodle.sql.log"); }
А в config.php добавить 'logall_re'=>'/SELECT.*logstore_standard_log/i'

Проблемы появились, когда пришло одновременно 1200 человек с 6000 запросами в минуту и 8-ми ядер стало нехватать (появилась полочка в загузке cpu).