MYSQL: медленный запрос после увеличения данных

0

У меня есть этот длинный запрос, и результат длится долго. Это может занять от 15 секунд до 20 секунд. В небольшом количестве данных запрос кажется ОК, и я проверил все индексы, и все уже использует индекс или условие.

Извините, я не размещаю фактические запросы, потому что их так много и связано с другими таблицами.

Может ли кто-нибудь помочь? Если вам нужна дополнительная информация, дайте мне знать.

Ниже приведен пример EXPLAINATION из 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
    Это один длинный EXPLAIN..i даст вам подсказку проверить строки, где вы видите Using temporary; Using filesort эта комбинация Using temporary; Using filesort производительность MySQL. Держу пари, что это предложение GROUP BY / ORDER BY, которое неправильно индексируется. Оптимизация предложения GROUP BY / ORDER BY часто требует составных индексов (индексация по нескольким столбцам).
  • 0
    Это один безумный вопрос. Веселиться.
Показать ещё 3 комментария
Теги:
indexing
explain

1 ответ

0

"Я проверил все индексы, и все уже использует индекс или условие". -- не достаточно хорош.

Using index condition может означать, что поможет "составной" индекс. Посмотрим на некоторые из SHOW CREATE TABLEs.

Посмотрим на один из 8-х столовых UNIONs.

Какую версию ты используешь? Старые версии выполняют ужасную работу с несколькими "производными" таблицами - потому что нет индексов.

У наборов результатов действительно есть 210K строк? Или есть LIMIT которую мы не можем видеть?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню