如何在mysql中快速查询

时间:2013-12-18 06:33:01

标签: mysql

我正在使用下面提到的查询返回1400条记录,它花费大约53秒来给出结果。有什么方法可以让它更快。但我的员工主人包含更多15,000条记录,而transaction_user_register包含25,000条记录。查询记录返回1400条记录

   select 
       b.t_reg_id,
       b.version,
       b.device_imei,
       b.device_model,
       b.created_date, b.active,
       a.emp_id, 
       a.emp_code,
       a.role_id,
       first_name,
       last_name,
       concat('91',a.mobile_no) as mobileno, 
       c.role_code ,
       '' as Orgunit
   from
       employee_master a,
       transaction_user_register b,
       emp_role_master c
   where 
       a.emp_code=b.emp_code and 
       a.role_id=c.role_id 
   group by emp_code;

1 个答案:

答案 0 :(得分:1)

你看过桌子上的索引吗?

此外,也许更好的结构化查询表明INNER JOINS会改善问题。

select b.t_reg_id,b.version,b.device_imei,b.device_model,b.created_date, b.active,
       a.emp_id, a.emp_code,a.role_id,first_name,last_name,concat('91',a.mobile_no) as
       mobileno, c.role_code ,'' as Orgunit
from
employee_master a
inner join transaction_user_register b
  on a.emp_code=b.emp_code
inner join emp_role_master c
  on a.role_id=c.role_id 
group by emp_code;