/ подобряване на производителността на mysql - mysql, performance, codeigniter

подобряване на ефективността на mysql - mysql, производителност, кодиране на данни

Ето един скрийншот на командата mysql explain на често срещана заявка: http://cl.ly/3r34251M320A1P2s3e1Y

Имам 3 различни таблици, които трябва да обединя, за да извлечем желаните от мен данни. Това е основният код на модела CI, използващ activerecord

    $this->db->select("articles.id, articles.title, articles.link, articles.updated_time, articles.created_time, shows.network,shows.show_id, shows.name");
$this->db->from("articles")->order_by("updated_time","desc")->offset($offset)->limit($limit);
$this->db->join("labels", "articles.remote_id = labels.articleid");
$this->db->join("shows", "shows.show_id = labels.showid");

Може ли някой да предложи някакви начини за подобряване на ефективността на схемата или заявката?

Благодаря

Отговори:

0 за отговор № 1

Това, което прави заявката ви по-бавна, е използването на mysqlвременни таблици и filesort, което означава, че не може ефективно да използва индекса и създава временна таблица (много пъти на диск!). Обикновено се случва, когато се присъедините към таблица, като използвате един индекс и го подредите с друг индекс или използвате условие в друг индекс. Първото нещо, което можете да направите, е да прочетете този проблем и да видите дали можете да избегнете използването на временни дискови таблици. Как MySQL използва temp таблици