mysql查询执行时间太长

mysql查询执行时间太长,mysql,phpmyadmin,Mysql,Phpmyadmin,大家好,我正在处理phpmyadmin数据库。每当我尝试执行查询时,都会花费超过10分钟的时间来显示结果。有没有办法加快速度。请回复 问题是 SELECT ib.*, b.brand_name, m.model_name, s.id as sale_id, br.branch_code,br.branch_name,r.rentry_date,r.id as rid from in_book ib left join brand b on ib.brand_id=b.id

大家好,我正在处理phpmyadmin数据库。每当我尝试执行查询时,都会花费超过10分钟的时间来显示结果。有没有办法加快速度。请回复

问题是

SELECT ib.*, b.brand_name, m.model_name,
       s.id as sale_id, br.branch_code,br.branch_name,r.rentry_date,r.id as rid
  from in_book ib 
  left join brand b on ib.brand_id=b.id
  left join model m on ib.vehicle_id=m.id
  left join re_entry r on r.in_book_id=ib.id
  left join sale s on ib.id=s.in_book_id
  left join branch br on ib.branch_id=br.id
 where ib.id !=''
   and ib.branch_id='65'
 group by ib.id
 order by r.id ASC,
       count(r.in_book_id) DESC ,
       ib.purchaes_date ASC,
       ib.id ASC

几乎有7个表

请确保在用于加入表的每个键上都有一个
索引

发件人:

提高SELECT操作性能的最佳方法是在查询中测试的一个或多个列上创建索引。索引项就像指向表行的指针,允许查询快速确定哪些行与WHERE子句中的条件匹配,并检索这些行的其他列值。所有MySQL数据类型都可以被索引


。。当然,这也适用于加入条件。

您没有列出任何此类索引,但是,我将从以下建议的索引开始

table      index
in_book    ( branch_id, id, brand_id, vehicle_id )
brand      ( id, brand_name )
model      ( id, model_name )
re_entry   ( in_book_id, id, reentry_date )
sale       ( in_book_id, id )
branch     ( id )
此外,使用MySQL,您可以使用一个特殊的关键字“STRAIGHT_JOIN”,它告诉引擎按照您选择的表的顺序进行查询。。。虽然您正在进行左联接,但我认为这并不重要,因为辅助表似乎都是查找类型的表,而in_book是您的主要表。但作为一种尝试,它将是

SELECT STRAIGHT_JOIN  (...rest of query...)

您的查询和表结构在哪里?您可以使用EXPLAIN命令获取查询在mySQL中使用的索引的详细信息,并使用这些信息以及通常可以提高性能的表详细信息。但是,如果没有基本的细节,我们就无法提供太多帮助。您将非标准的MySQL扩展误用到
groupby
。当您这样做时,几乎不可能猜测(对于StackOverflow上的我们,或者对于MySQL服务器)您想要从查询中得到什么。请看这个。你有什么索引?例如,in_book是否在分支id上有索引?重新输入是否有关于in-book\u id的索引?销售部是否有关于帐簿id的索引?