Se você tiver uma carga muito grande de cursos cadastrados no Moodle, em torno de dezena de milhares, vai deparar com a lentidão quando for criar um novo curso ou então ao mudar um curso de categoria.
Essa
lentidão se deve ao fato do Moodle reordenar cada um dos cursos, ao
criar um novo curso. Para cada curso, será enviada ao banco o query
abaixo:
UPDATE mdl_course SET sortorder = ? WHERE id=?
Cada query roda em tempo aceitável. Devido a carga, acaba demorando. Imagine 20 mil queries desse numa só tacada.
Isso
é uma falha do Moodle que reprocessa ordenamento de todos os cursos
quando um curso for criado. Essa falha torna visível apenas quando
houver dezena de milhares de cursos, o que é um caso pouco comum.
Essa falha já foi registrada no tracker do Moodle: https://tracker.moodle.org/browse/MDL-25669 em 2010.
Para
efeito de teste, foi desativado a função fix_course_sortorder() que
fica no arquivo MOODLE_DIR/lib/datalib.php responsável para o
reordenamento do curso. Após isso, o tempo para criar um curso ficou em
torno de 4 segundos.
Para desativar essa função, siga os seguintes passos:
1) Abra o arquivo MOODLE_DIR/libdata/lib.php
2) Localize a função fix_course_sortorder() que fica aproximadamente na linha 861;
3) No inicio dessa função, adicione a seguinte linha de comando:
return null;
Esse comando deve ficar antes do comando:
global $DB, $SITE;
4) Salve a alteração