如何在mysql中实现快速查询
我使用下面提到的查询返回1400条记录,给出结果大约需要53秒。有什么办法可以让它更快吗。但我的员工主数据包含15000条以上的记录,交易用户登记簿包含25000条记录。查询记录返回1400条记录如何在mysql中实现快速查询,mysql,Mysql,我使用下面提到的查询返回1400条记录,给出结果大约需要53秒。有什么办法可以让它更快吗。但我的员工主数据包含15000条以上的记录,交易用户登记簿包含25000条记录。查询记录返回1400条记录 select b.t_reg_id, b.version, b.device_imei, b.device_model, b.created_date, b.active, a.emp_id,
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;
你看过表上的索引了吗
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;
此外,一个更好的结构化查询(指示内部联接)可能会改善问题
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;
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;
在处理涉及CRUD.InnoDB或MyISAM的大量数据时,您可能希望查看存储过程?你能在这里发布my.cnf吗?如果每个表中的1400条记录在53秒内完成,则说明你的安装有严重问题。即使它正在执行一个需要几毫秒的完整表扫描。所有的东西都应该很容易放在内存中,我看不到任何东西在做笛卡尔连接。系统是否负载过重?我正在使用mysql查询浏览器,在employee和transaction user主表中包含超过100000条记录