select atts.cWhCode as 仓库编码, atts.cWhName as 仓库名称, atts.cInvCCode as 存货分类代码, atts.cInvCName as 存货分类名称, atts.cInvCode as 存货编码, atts.cInvStd as 规格型号, atts.cInvName as 存货名称, atts.cBatch as 批号, atts.cFree1 as 片号, atts.iNum as 入库件数, aots.iNum as 出库件数, atts.iQuantity as 入库数量, aots.iQuantity as 出库数量, atts.cFree4 as 厚度, atts.cFree5 as 背面金属, atts.cInvDefine5 as 供应商名称, atts.cInvDefine6 as 芯片来源, atts.cPosCode as 货位编码, atts.cPosName as 货位名称, atts.cInvDefine2 as Wafer尺寸, atts.dDate as 入库日期, atts.iinvexchrate as 换算率, atts.cFree3 as 外观属性, atts.cInvDefine4 as 供应商型号 from analy_total_tables atts left join analy_out_tables aots on atts.only = aots.only查询速度很慢,mysql两张表,每张表大概20万条数据 如何使用索引优化查询速度
时间: 2024-04-06 09:33:42 浏览: 12
可以为两张表的 atts.only 和 aots.only 字段分别创建索引,以提高查询速度。可以使用以下 SQL 语句为这两个字段创建索引:
```
ALTER TABLE analy_total_tables ADD INDEX idx_only (only);
ALTER TABLE analy_out_tables ADD INDEX idx_only (only);
```
这样创建索引后,查询语句会使用索引来查找匹配的数据,提高了查询速度。同时,还可以使用 EXPLAIN 命令来分析查询语句的执行计划,以确定是否使用了索引等优化方式。例如:
```
EXPLAIN SELECT atts.cWhCode as 仓库编码, atts.cWhName as 仓库名称, atts.cInvCCode as 存货分类代码, atts.cInvCName as 存货分类名称, atts.cInvCode as 存货编码, atts.cInvStd as 规格型号, atts.cInvName as 存货名称, atts.cBatch as 批号, atts.cFree1 as 片号, atts.iNum as 入库件数, aots.iNum as 出库件数, atts.iQuantity as 入库数量, aots.iQuantity as 出库数量, atts.cFree4 as 厚度, atts.cFree5 as 背面金属, atts.cInvDefine5 as 供应商名称, atts.cInvDefine6 as 芯片来源, atts.cPosCode as 货位编码, atts.cPosName as 货位名称, atts.cInvDefine2 as Wafer尺寸, atts.dDate as 入库日期, atts.iinvexchrate as 换算率, atts.cFree3 as 外观属性, atts.cInvDefine4 as 供应商型号 FROM analy_total_tables atts LEFT JOIN analy_out_tables aots ON atts.only = aots.only;
```
执行该命令后,可以查看到查询语句的执行计划,包括使用了哪些索引等信息。根据执行计划的结果,可以进一步优化查询语句和索引,以提高查询速度。