我有这个长查询,结果很长。最多可能需要15秒到20秒。在少量数据中,查询似乎没问题,我检查了所有索引,并且已经使用了索引或where条件。
抱歉,我不会发布实际的查询,因为它太多而且与其他表格相关联。
有人可以帮忙吗?如果您需要任何进一步的信息,请告诉我。
以下是mysql的解释。
1 PRIMARY <derived2> ALL NULL NULL NULL NULL 210326
2 DERIVED PQL ref practice_place_id,patient_id,practice_place_id_2,encounter_id,practice_place_id_3,for_comission for_comission 4 const 38950 Using where; Using index; Using temporary; Using filesort
2 DERIVED EN eq_ref PRIMARY,id,practice_id,practice_id_2,practice_id_3 PRIMARY 8 PQL.encounter_id,const 1 Using index
2 DERIVED PIH ref PRIMARY,reff_id,practice_id,timestamp,is_active,practice_id_3,cal_id,practice_id_5,practice_id_6,practice_id_2,practice_id_4,practice_id_7,practice_id_8 practice_id_3 12 const,EN.id 1 Using index condition; Using where
2 DERIVED RPP eq_ref PRIMARY,patient_id,practice_id,practice_id_2 PRIMARY 8 const,PQL.patient_id 1
2 DERIVED PID ref item_type,timestamp,practice_id,item_id_2,timestamp_2,practice_id_2,practice_id_3 timestamp 12 PIH.timestamp,const 1 Using where
2 DERIVED RV eq_ref PRIMARY PRIMARY 4 PID.item_id 1
2 DERIVED RRV eq_ref PRIMARY,parent_id PRIMARY 8 PID.item_id,PID.item_sub_id 1 Using index
2 DERIVED D ref doc_id,pp_id,id_2,pp_doc doc_id 4 PID.doctor_id 1 Using where
2 DERIVED RPIP ref timestamp,practice_id,timestamp_2,refunded timestamp 8 PIH.timestamp 1 Using where
2 DERIVED PIC ref practice_id,prc_invoice_detail_id,claim_status,practice_id_2,practice_id_3,practice_id_4,practice_id_5 practice_id 4 const 1 Using where
2 DERIVED TL ref reff_id reff_id 12 PIH.timestamp,const 1 Using where
3 UNION PQL ref practice_place_id,patient_id,practice_place_id_2,encounter_id,practice_place_id_3,for_comission for_comission 4 const 38950 Using where; Using index; Using temporary; Using filesort
3 UNION EN eq_ref PRIMARY,id,practice_id,practice_id_2,practice_id_3 PRIMARY 8 PQL.encounter_id,const 1 Using index
3 UNION PIH ref PRIMARY,reff_id,practice_id,timestamp,is_active,practice_id_3,cal_id,practice_id_5,practice_id_6,practice_id_2,practice_id_4,practice_id_7,practice_id_8 practice_id_3 12 const,EN.id 1 Using index condition; Using where
3 UNION RPP eq_ref PRIMARY,patient_id,practice_id,practice_id_2 PRIMARY 8 const,PQL.patient_id 1
3 UNION PID ref item_type,timestamp,practice_id,item_id_2,timestamp_2,practice_id_2,practice_id_3 timestamp 12 PIH.timestamp,const 1 Using where
3 UNION RV eq_ref PRIMARY PRIMARY 4 PID.item_id 1
3 UNION RRV eq_ref PRIMARY,parent_id PRIMARY 8 PID.item_id,PID.item_sub_id 1 Using index
3 UNION D ref doc_id,pp_id,id_2,pp_doc doc_id 4 PID.doctor_id_2 1 Using where
3 UNION RPIP ref timestamp,practice_id,timestamp_2,refunded timestamp 8 PIH.timestamp 1 Using where
3 UNION PIC ref practice_id,prc_invoice_detail_id,claim_status,practice_id_2,practice_id_3,practice_id_4,practice_id_5 practice_id 4 const 1 Using where
3 UNION TL ref reff_id reff_id 12 PIH.timestamp,const 1 Using where
4 UNION PQL ref practice_place_id,patient_id,practice_place_id_2,encounter_id,practice_place_id_3,for_comission for_comission 4 const 38950 Using where; Using index; Using temporary; Using filesort
4 UNION EN eq_ref PRIMARY,id,practice_id,practice_id_2,practice_id_3 PRIMARY 8 PQL.encounter_id,const 1 Using index
4 UNION PIH ref PRIMARY,source,reff_id,practice_id,timestamp,is_active,practice_id_3,cal_id,practice_id_5,practice_id_6,practice_id_2,practice_id_4,practice_id_7,practice_id_8 practice_id_3 12 const,EN.id 1 Using index condition; Using where
4 UNION RPP eq_ref PRIMARY,patient_id,practice_id,practice_id_2 PRIMARY 8 const,PQL.patient_id 1
4 UNION TL ref reff_id reff_id 12 PIH.timestamp,const 1 Using where
4 UNION PID ref item_type,timestamp,practice_id,item_id_2,timestamp_2,practice_id_2,practice_id_3 timestamp 12 PIH.timestamp,const 1 Using where
4 UNION RPIP ref timestamp,practice_id,timestamp_2,refunded timestamp 8 PIH.timestamp 1 Using where
4 UNION PIC ref practice_id,prc_invoice_detail_id,claim_status,practice_id_2,practice_id_3,practice_id_4,practice_id_5 practice_id 4 const 1 Using where
4 UNION REF eq_ref PRIMARY,practice_id,type,id,practice_id_3,id_2 PRIMARY 5 PID.item_id,PID.item_type 1 Using where
4 UNION DF eq_ref PRIMARY PRIMARY 2 REF.form 1 Using where
4 UNION D ref doc_id,pp_id,id_2,pp_doc doc_id 4 PID.doctor_id 1 Using where
5 UNION PID ref item_type,timestamp,practice_id,item_id_2,timestamp_2,practice_id_2,practice_id_3 practice_id_3 5 const,const 6533 Using index condition; Using where; Using temporary; Using filesort
5 UNION REF eq_ref PRIMARY,practice_id,id,practice_id_2 PRIMARY 4 PID.item_id 1 Using where
5 UNION D ref doc_id,pp_id,id_2,pp_doc doc_id 4 PID.doctor_id 1 Using where
5 UNION PIH eq_ref PRIMARY,source,reff_id,practice_id,timestamp,is_active,practice_id_3,cal_id,practice_id_5,practice_id_6,practice_id_2,practice_id_4,practice_id_7,practice_id_8 PRIMARY 12 PID.timestamp,const 1 Using where
5 UNION PQL ref practice_place_id,patient_id,practice_place_id_2,encounter_id,practice_place_id_3,for_comission practice_place_id_2 9 const,PIH.reff_id 1 Using index condition; Using where
5 UNION EN eq_ref PRIMARY,id,practice_id,practice_id_2,practice_id_3 PRIMARY 8 PIH.reff_id,const 1 Using where; Using index
5 UNION RPP eq_ref PRIMARY,patient_id,practice_id,practice_id_2 PRIMARY 8 const,PQL.patient_id 1
5 UNION RPIP ref timestamp,practice_id,timestamp_2,refunded timestamp 8 PID.timestamp 1 Using where
5 UNION PIC ref practice_id,prc_invoice_detail_id,claim_status,practice_id_2,practice_id_3,practice_id_4,practice_id_5 practice_id 4 const 1 Using where
5 UNION TL ref reff_id reff_id 12 PID.timestamp,const 1 Using where
6 UNION PIH ref PRIMARY,source,reff_id,practice_id,timestamp,is_active,practice_id_3,cal_id,practice_id_5,practice_id_6,practice_id_2,practice_id_4,practice_id_7,practice_id_8 practice_id_8 5 const,const 10522 Using index condition; Using temporary; Using filesort
6 UNION PID ref item_type,timestamp,practice_id,item_id_2,timestamp_2,practice_id_2,practice_id_3 timestamp 12 PIH.timestamp,const 1 Using where
6 UNION D ref doc_id,pp_id,id_2,pp_doc doc_id 4 PID.doctor_id 1 Using where
6 UNION REF eq_ref PRIMARY,practice_id,type,id,practice_id_3,id_2 PRIMARY 5 PID.item_id,PID.item_type 1 Using where
6 UNION RPIP ref timestamp,practice_id,timestamp_2,refunded timestamp 8 PIH.timestamp 1 Using where
6 UNION PIC ref practice_id,prc_invoice_detail_id,claim_status,practice_id_2,practice_id_3,practice_id_4,practice_id_5 practice_id 4 const 1 Using where
6 UNION RPP eq_ref PRIMARY,patient_id,practice_id,practice_id_2 PRIMARY 8 const,PIH.reff_id 1 Using where
6 UNION TL ref reff_id reff_id 12 PIH.timestamp,const 1 Using where
7 UNION PID ref item_type,timestamp,practice_id,item_id_2,timestamp_2,practice_id_2,practice_id_3 practice_id_3 5 const,const 6533 Using index condition; Using where; Using temporary; Using filesort
7 UNION RPIP ref timestamp,practice_id,timestamp_2,refunded timestamp 8 PID.timestamp 1 Using where
7 UNION PIC ref practice_id,prc_invoice_detail_id,claim_status,practice_id_2,practice_id_3,practice_id_4,practice_id_5 practice_id 4 const 1 Using where
7 UNION D ref doc_id,pp_id,id_2,pp_doc doc_id 4 PID.doctor_id 1 Using where
7 UNION REF eq_ref PRIMARY,practice_id,id,practice_id_2 PRIMARY 4 PID.item_id 1 Using where
7 UNION PIH eq_ref PRIMARY,source,reff_id,practice_id,timestamp,is_active,practice_id_3,cal_id,practice_id_5,practice_id_6,practice_id_2,practice_id_4,practice_id_7,practice_id_8 PRIMARY 12 PID.timestamp,const 1 Using where
7 UNION RPP eq_ref PRIMARY,patient_id,practice_id,practice_id_2 PRIMARY 8 const,PIH.reff_id 1 Using where
7 UNION TL ref reff_id reff_id 12 PID.timestamp,const 1 Using where
8 UNION PQL ref practice_place_id,patient_id,practice_place_id_2,encounter_id,practice_place_id_3,for_comission for_comission 4 const 38950 Using where; Using index; Using temporary; Using filesort
8 UNION EN eq_ref PRIMARY,id,practice_id,practice_id_2,practice_id_3 PRIMARY 8 PQL.encounter_id,const 1 Using index
8 UNION PIH ref PRIMARY,source,reff_id,practice_id,timestamp,is_active,practice_id_3,cal_id,practice_id_5,practice_id_6,practice_id_2,practice_id_4,practice_id_7,practice_id_8 practice_id_3 12 const,EN.id 1 Using index condition; Using where
8 UNION RPP eq_ref PRIMARY,patient_id,practice_id,practice_id_2 PRIMARY 8 const,PQL.patient_id 1
8 UNION TL ref reff_id reff_id 12 PIH.timestamp,const 1 Using where
8 UNION PID ref item_type,timestamp,practice_id,item_id_2,timestamp_2,practice_id_2,practice_id_3 timestamp 12 PIH.timestamp,const 1 Using where
8 UNION RPIP ref timestamp,practice_id,timestamp_2,refunded timestamp 8 PIH.timestamp 1 Using where
8 UNION PIC ref practice_id,prc_invoice_detail_id,claim_status,practice_id_2,practice_id_3,practice_id_4,practice_id_5 practice_id 4 const 1 Using where
8 UNION REF eq_ref PRIMARY,practice_id,type,id,practice_id_3,id_2 PRIMARY 5 PID.item_id,PID.item_type 1 Using where
8 UNION DF eq_ref PRIMARY PRIMARY 2 REF.form 1 Using where
8 UNION D ref doc_id,pp_id,id_2,pp_doc doc_id 4 PID.doctor_id_2 1 Using where
9 UNION PID ref item_type,timestamp,practice_id,item_id_2,timestamp_2,practice_id_2,practice_id_3 practice_id_3 5 const,const 6533 Using index condition; Using where; Using temporary; Using filesort
9 UNION REF eq_ref PRIMARY,practice_id,id,practice_id_2 PRIMARY 4 PID.item_id 1 Using where
9 UNION D ref doc_id,pp_id,id_2,pp_doc doc_id 4 PID.doctor_id_2 1 Using where
9 UNION PIH eq_ref PRIMARY,source,reff_id,practice_id,timestamp,is_active,practice_id_3,cal_id,practice_id_5,practice_id_6,practice_id_2,practice_id_4,practice_id_7,practice_id_8 PRIMARY 12 PID.timestamp,const 1 Using where
9 UNION PQL ref practice_place_id,patient_id,practice_place_id_2,encounter_id,practice_place_id_3,for_comission practice_place_id_2 9 const,PIH.reff_id 1 Using index condition; Using where
9 UNION EN eq_ref PRIMARY,id,practice_id,practice_id_2,practice_id_3 PRIMARY 8 PIH.reff_id,const 1 Using where; Using index
9 UNION RPP eq_ref PRIMARY,patient_id,practice_id,practice_id_2 PRIMARY 8 const,PQL.patient_id 1
9 UNION RPIP ref timestamp,practice_id,timestamp_2,refunded timestamp 8 PID.timestamp 1 Using where
9 UNION PIC ref practice_id,prc_invoice_detail_id,claim_status,practice_id_2,practice_id_3,practice_id_4,practice_id_5 practice_id 4 const 1 Using where
9 UNION TL ref reff_id reff_id 12 PID.timestamp,const 1 Using where
10 UNION PIH ref PRIMARY,source,reff_id,practice_id,timestamp,is_active,practice_id_3,cal_id,practice_id_5,practice_id_6,practice_id_2,practice_id_4,practice_id_7,practice_id_8 practice_id_8 5 const,const 10522 Using index condition; Using temporary; Using filesort
10 UNION PID ref item_type,timestamp,practice_id,item_id_2,timestamp_2,practice_id_2,practice_id_3 timestamp 12 PIH.timestamp,const 1 Using where
10 UNION D ref doc_id,pp_id,id_2,pp_doc doc_id 4 PID.doctor_id_2 1 Using where
10 UNION REF eq_ref PRIMARY,practice_id,type,id,practice_id_3,id_2 PRIMARY 5 PID.item_id,PID.item_type 1 Using where
10 UNION RPIP ref timestamp,practice_id,timestamp_2,refunded timestamp 8 PIH.timestamp 1 Using where
10 UNION PIC ref practice_id,prc_invoice_detail_id,claim_status,practice_id_2,practice_id_3,practice_id_4,practice_id_5 practice_id 4 const 1 Using where
10 UNION RPP eq_ref PRIMARY,patient_id,practice_id,practice_id_2 PRIMARY 8 const,PIH.reff_id 1 Using where
10 UNION TL ref reff_id reff_id 12 PIH.timestamp,const 1 Using where
11 UNION PID ref item_type,timestamp,practice_id,item_id_2,timestamp_2,practice_id_2,practice_id_3 practice_id_3 5 const,const 6533 Using index condition; Using where; Using temporary; Using filesort
11 UNION RPIP ref timestamp,practice_id,timestamp_2,refunded timestamp 8 PID.timestamp 1 Using where
11 UNION PIC ref practice_id,prc_invoice_detail_id,claim_status,practice_id_2,practice_id_3,practice_id_4,practice_id_5 practice_id 4 const 1 Using where
11 UNION D ref doc_id,pp_id,id_2,pp_doc doc_id 4 PID.doctor_id_2 1 Using where
11 UNION REF eq_ref PRIMARY,practice_id,id,practice_id_2 PRIMARY 4 PID.item_id 1 Using where
11 UNION PIH eq_ref PRIMARY,source,reff_id,practice_id,timestamp,is_active,practice_id_3,cal_id,practice_id_5,practice_id_6,practice_id_2,practice_id_4,practice_id_7,practice_id_8 PRIMARY 12 PID.timestamp,const 1 Using where
11 UNION RPP eq_ref PRIMARY,patient_id,practice_id,practice_id_2 PRIMARY 8 const,PIH.reff_id 1 Using where
11 UNION TL ref reff_id reff_id 12 PID.timestamp,const 1 Using where
12 UNION PID ref item_type,timestamp,practice_id,item_id_2,timestamp_2,practice_id_2,practice_id_3 practice_id_3 5 const,const 525 Using index condition; Using where; Using temporary; Using filesort
12 UNION D ref doc_id,pp_id,id_2,pp_doc doc_id 4 PID.doctor_id 1 Using where
12 UNION PIH eq_ref PRIMARY,source,reff_id,practice_id,timestamp,is_active,practice_id_3,cal_id,practice_id_5,practice_id_6,practice_id_2,practice_id_4,practice_id_7,practice_id_8 PRIMARY 12 PID.timestamp,const 1 Using where
12 UNION PQL ref practice_place_id,patient_id,practice_place_id_2,encounter_id,practice_place_id_3,for_comission practice_place_id_2 9 const,PIH.reff_id 1 Using index condition; Using where
12 UNION EN eq_ref PRIMARY,id,practice_id,practice_id_2,practice_id_3 PRIMARY 8 PIH.reff_id,const 1 Using where; Using index
12 UNION RPP eq_ref PRIMARY,patient_id,practice_id,practice_id_2 PRIMARY 8 const,PQL.patient_id 1
12 UNION RPIP ref timestamp,practice_id,timestamp_2,refunded timestamp 8 PID.timestamp 1 Using where
12 UNION PIC ref practice_id,prc_invoice_detail_id,claim_status,practice_id_2,practice_id_3,practice_id_4,practice_id_5 practice_id 4 const 1 Using where
12 UNION TL ref reff_id reff_id 12 PID.timestamp,const 1 Using where
12 UNION PLD ref PRIMARY,practice_id practice_id 8 const,PID.item_id 3 Using index
12 UNION PLI eq_ref PRIMARY,id PRIMARY 4 PLD.lab_item_id 1 Using index
12 UNION PLC eq_ref PRIMARY PRIMARY 4 PLD.lab_cat_id 1
13 UNION PID ref item_type,timestamp,practice_id,item_id_2,timestamp_2,practice_id_2,practice_id_3 practice_id_3 5 const,const 525 Using index condition; Using where; Using temporary; Using filesort
13 UNION D ref doc_id,pp_id,id_2,pp_doc doc_id 4 PID.doctor_id 1 Using where
13 UNION PIH eq_ref PRIMARY,source,reff_id,practice_id,timestamp,is_active,practice_id_3,cal_id,practice_id_5,practice_id_6,practice_id_2,practice_id_4,practice_id_7,practice_id_8 PRIMARY 12 PID.timestamp,const 1 Using where
13 UNION RPP eq_ref PRIMARY,patient_id,practice_id,practice_id_2 PRIMARY 8 const,PIH.reff_id 1 Using where
13 UNION RPIP ref timestamp,practice_id,timestamp_2,refunded timestamp 8 PID.timestamp 1 Using where
13 UNION PIC ref practice_id,prc_invoice_detail_id,claim_status,practice_id_2,practice_id_3,practice_id_4,practice_id_5 practice_id 4 const 1 Using where
13 UNION TL ref reff_id reff_id 12 PID.timestamp,const 1 Using where
13 UNION PLD ref PRIMARY,practice_id PRIMARY 4 PID.item_id 4 Using where
13 UNION PLI eq_ref PRIMARY,id PRIMARY 4 PLD.lab_item_id 1 Using index
13 UNION PLC eq_ref PRIMARY PRIMARY 4 PLD.lab_cat_id 1
14 UNION PID ref item_type,timestamp,practice_id,item_id_2,timestamp_2,practice_id_2,practice_id_3 practice_id_3 5 const,const 525 Using index condition; Using where; Using temporary; Using filesort
14 UNION D ref doc_id,pp_id,id_2,pp_doc doc_id 4 PID.doctor_id_2 1 Using where
14 UNION PIH eq_ref PRIMARY,source,reff_id,practice_id,timestamp,is_active,practice_id_3,cal_id,practice_id_5,practice_id_6,practice_id_2,practice_id_4,practice_id_7,practice_id_8 PRIMARY 12 PID.timestamp,const 1 Using where
14 UNION PQL ref practice_place_id,patient_id,practice_place_id_2,encounter_id,practice_place_id_3,for_comission practice_place_id_2 9 const,PIH.reff_id 1 Using index condition; Using where
14 UNION EN eq_ref PRIMARY,id,practice_id,practice_id_2,practice_id_3 PRIMARY 8 PIH.reff_id,const 1 Using where; Using index
14 UNION RPP eq_ref PRIMARY,patient_id,practice_id,practice_id_2 PRIMARY 8 const,PQL.patient_id 1
14 UNION RPIP ref timestamp,practice_id,timestamp_2,refunded timestamp 8 PID.timestamp 1 Using where
14 UNION PIC ref practice_id,prc_invoice_detail_id,claim_status,practice_id_2,practice_id_3,practice_id_4,practice_id_5 practice_id 4 const 1 Using where
14 UNION TL ref reff_id reff_id 12 PID.timestamp,const 1 Using where
14 UNION PLD ref PRIMARY,practice_id practice_id 8 const,PID.item_id 3 Using index
14 UNION PLI eq_ref PRIMARY,id PRIMARY 4 PLD.lab_item_id 1 Using index
14 UNION PLC eq_ref PRIMARY PRIMARY 4 PLD.lab_cat_id 1
15 UNION PID ref item_type,timestamp,practice_id,item_id_2,timestamp_2,practice_id_2,practice_id_3 practice_id_3 5 const,const 525 Using index condition; Using where; Using temporary; Using filesort
15 UNION D ref doc_id,pp_id,id_2,pp_doc doc_id 4 PID.doctor_id_2 1 Using where
15 UNION PIH eq_ref PRIMARY,source,reff_id,practice_id,timestamp,is_active,practice_id_3,cal_id,practice_id_5,practice_id_6,practice_id_2,practice_id_4,practice_id_7,practice_id_8 PRIMARY 12 PID.timestamp,const 1 Using where
15 UNION RPP eq_ref PRIMARY,patient_id,practice_id,practice_id_2 PRIMARY 8 const,PIH.reff_id 1 Using where
15 UNION RPIP ref timestamp,practice_id,timestamp_2,refunded timestamp 8 PID.timestamp 1 Using where
15 UNION PIC ref practice_id,prc_invoice_detail_id,claim_status,practice_id_2,practice_id_3,practice_id_4,practice_id_5 practice_id 4 const 1 Using where
15 UNION TL ref reff_id reff_id 12 PID.timestamp,const 1 Using where
15 UNION PLD ref PRIMARY,practice_id PRIMARY 4 PID.item_id 4 Using where
15 UNION PLI eq_ref PRIMARY,id PRIMARY 4 PLD.lab_item_id 1 Using index
15 UNION PLC eq_ref PRIMARY PRIMARY 4 PLD.lab_cat_id 1
答案 0 :(得分:0)
&#34;我检查了所有索引,以及所有已经使用索引或条件的内容。&#34; - 还不够好。
Using index condition
可能意味着&#39;复合&#39;索引会有所帮助。让我们看一些SHOW CREATE TABLEs
。
让我们看一下8-table UNIONs
的一个。
您使用的是哪个版本?较旧的版本使用多个衍生版本做了很糟糕的工作。表 - 因为没有索引。
结果集真的有210K行吗?或者我们无法看到LIMIT
吗?