2017-06-09 12 views
1

Helo verlieren, ich habe einen Zweifel, uid Spalt unterschiedliches Integral kann nicht Index verwenden, was die dazu führen ?:mysql select SQL sehr langsam, die ein Index

bitte jemand sagen Sie mir, Dank !!!

Tabelle item_sort_20170525 222.466.057 Linien haben, Show erstellen Tabelle dieses:

CREATE TABLE `item_sort_20170525` (
    `id` int(10) NOT NULL AUTO_INCREMENT 
    `iid` bigint(20) NOT NULL DEFAULT '0' 
    `uid` bigint(20) NOT NULL DEFAULT '0' 
    `kw_id` int(10) NOT NULL DEFAULT '0' 
    `platform` tinyint(2) NOT NULL DEFAULT '0' 
    `is_p4p` tinyint(1) NOT NULL DEFAULT '0' 
    `page` tinyint(2) NOT NULL DEFAULT '1' 
    `pos` smallint(4) NOT NULL DEFAULT '0' 
    `real_pos` char(6) NOT NULL DEFAULT '' 
    `created` int(10) NOT NULL DEFAULT '0' 
    PRIMARY KEY (`id`), 
    KEY `idx_keyword` (`kw_id`) USING BTREE, 
    KEY `idx_iid` (`iid`,`platform`) USING BTREE, 
    KEY `idx_uid` (`uid`,`platform`) USING BTREE 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 

wenn uid = 896.588.234 dann

SELECT `kw_id`, COUNT(kw_id) AS `count` FROM `item_sort_20170525` 
WHERE `uid` = 896588234 AND `platform` IN (12, 11) GROUP BY `kw_id` ORDER BY `kw_id` DESC LIMIT 21; 

Show erklären:

select_type : SIMPLE 
table   : item_sort_20170525 
type   : range 
possible_keys : idx_keyword,idx_uid 
key   : idx_uid 
key_len  : 9 
ref   : 
rows   : 585 
Extra   : Using index condition; Using temporary; Using filesort 

, wenn uid = 2259613579 dann

SELECT `kw_id`, COUNT(kw_id) AS `count` FROM `item_sort_20170525` force index(`idx_uid`) 
WHERE `uid` = 2259613579 AND `platform` IN (12, 11) GROUP BY `kw_id` ORDER BY `kw_id` DESC LIMIT 21; 

Show erklären:

select_type : SIMPLE 
table   : item_sort_20170525 
type   : ALL 
possible_keys : idx_keyword,idx_uid 
key   : 
key_len  : 
ref   : 
rows   : 225015710 
Extra   : Using where; Using temporary; Using filesort 

verlieren Index (idx_uid), wo uid einen großen int wie 2259613579 eq, dann Kraftindex (idx_uid) verwenden nur gleiche failed ! diese mysql optimer_trace:

{ 
    "steps": [ 
    { 
     "join_preparation": { 
     "select#": 1, 
     "steps": [ 
      { 
      "expanded_query": "/* select#1 */ select `tem_sort_20170525`.`kw_id` AS `kw_id`,count(`tem_sort_20170525`.`kw_id`) AS `count` from `tem_sort_20170525` where ((`tem_sort_20170525`.`uid` = 2259613579) and (`tem_sort_20170525`.`platform` in (12,11))) group by `tem_sort_20170525`.`kw_id` order by `tem_sort_20170525`.`kw_id` desc limit 21" 
      } 
     ] /* steps */ 
     } /* join_preparation */ 
    }, 
    { 
     "join_optimization": { 
     "select#": 1, 
     "steps": [ 
      { 
      "condition_processing": { 
       "condition": "WHERE", 
       "original_condition": "((`tem_sort_20170525`.`uid` = 2259613579) and (`tem_sort_20170525`.`platform` in (12,11)))", 
       "steps": [ 
       { 
        "transformation": "equality_propagation", 
        "resulting_condition": "((`tem_sort_20170525`.`platform` in (12,11)) and multiple equal(2259613579, `tem_sort_20170525`.`uid`))" 
       }, 
       { 
        "transformation": "constant_propagation", 
        "resulting_condition": "((`tem_sort_20170525`.`platform` in (12,11)) and multiple equal(2259613579, `tem_sort_20170525`.`uid`))" 
       }, 
       { 
        "transformation": "trivial_condition_removal", 
        "resulting_condition": "((`tem_sort_20170525`.`platform` in (12,11)) and multiple equal(2259613579, `tem_sort_20170525`.`uid`))" 
       } 
       ] /* steps */ 
      } /* condition_processing */ 
      }, 
      { 
      "table_dependencies": [ 
       { 
       "table": "`tem_sort_20170525`", 
       "row_may_be_null": false, 
       "map_bit": 0, 
       "depends_on_map_bits": [ 
       ] /* depends_on_map_bits */ 
       } 
      ] /* table_dependencies */ 
      }, 
      { 
      "ref_optimizer_key_uses": [ 
       { 
       "table": "`tem_sort_20170525`", 
       "field": "uid", 
       "equals": "2259613579", 
       "null_rejecting": false 
       } 
      ] /* ref_optimizer_key_uses */ 
      }, 
      { 
      "rows_estimation": [ 
       { 
       "table": "`tem_sort_20170525`", 
       "const_keys_added": { 
        "keys": [ 
        "idx_keyword" 
        ] /* keys */, 
        "cause": "group_by" 
       } /* const_keys_added */, 
       "range_analysis": { 
        "table_scan": { 
        "rows": 225015710, 
        "cost": 4.61e7 
        } /* table_scan */, 
        "potential_range_indices": [ 
        { 
         "index": "PRIMARY", 
         "usable": false, 
         "cause": "not_applicable" 
        }, 
        { 
         "index": "idx_keyword", 
         "usable": true, 
         "key_parts": [ 
         "kw_id", 
         "id" 
         ] /* key_parts */ 
        }, 
        { 
         "index": "idx_iid", 
         "usable": false, 
         "cause": "not_applicable" 
        }, 
        { 
         "index": "idx_uid", 
         "usable": true, 
         "key_parts": [ 
         "uid", 
         "platform", 
         "id" 
         ] /* key_parts */ 
        } 
        ] /* potential_range_indices */, 
        "setup_range_conditions": [ 
        ] /* setup_range_conditions */, 
        "group_index_range": { 
        "chosen": false, 
        "cause": "not_applicable_aggregate_function" 
        } /* group_index_range */, 
        "analyzing_range_alternatives": { 
        "range_scan_alternatives": [ 
         { 
         "index": "idx_uid", 
         "ranges": [ 
          "2259613579 <= uid <= 2259613579 AND 11 <= platform <= 11", 
          "2259613579 <= uid <= 2259613579 AND 12 <= platform <= 12" 
         ] /* ranges */, 
         "index_dives_for_eq_ranges": true, 
         "rowid_ordered": false, 
         "using_mrr": false, 
         "index_only": false, 
         "rows": 29, 
         "cost": 36.81, 
         "chosen": true 
         } 
        ] /* range_scan_alternatives */, 
        "analyzing_roworder_intersect": { 
         "usable": false, 
         "cause": "too_few_roworder_scans" 
        } /* analyzing_roworder_intersect */ 
        } /* analyzing_range_alternatives */, 
        "chosen_range_access_summary": { 
        "range_access_plan": { 
         "type": "range_scan", 
         "index": "idx_uid", 
         "rows": 29, 
         "ranges": [ 
         "2259613579 <= uid <= 2259613579 AND 11 <= platform <= 11", 
         "2259613579 <= uid <= 2259613579 AND 12 <= platform <= 12" 
         ] /* ranges */ 
        } /* range_access_plan */, 
        "rows_for_plan": 29, 
        "cost_for_plan": 36.81, 
        "chosen": true 
        } /* chosen_range_access_summary */ 
       } /* range_analysis */ 
       } 
      ] /* rows_estimation */ 
      }, 
      { 
      "considered_execution_plans": [ 
       { 
       "plan_prefix": [ 
       ] /* plan_prefix */, 
       "table": "`tem_sort_20170525`", 
       "best_access_path": { 
        "considered_access_paths": [ 
        { 
         "access_type": "ref", 
         "index": "idx_uid", 
         "rows": 36, 
         "cost": 43.2, 
         "chosen": true 
        }, 
        { 
         "access_type": "range", 
         "rows": 22, 
         "cost": 42.61, 
         "chosen": true 
        } 
        ] /* considered_access_paths */ 
       } /* best_access_path */, 
       "cost_for_plan": 42.61, 
       "rows_for_plan": 22, 
       "chosen": true 
       } 
      ] /* considered_execution_plans */ 
      }, 
      { 
      "attaching_conditions_to_tables": { 
       "original_condition": "((`tem_sort_20170525`.`uid` = 2259613579) and (`tem_sort_20170525`.`platform` in (12,11)))", 
       "attached_conditions_computation": [ 
       { 
        "table": "`tem_sort_20170525`", 
        "rechecking_index_usage": { 
        "recheck_reason": "low_limit", 
        "limit": 21, 
        "row_estimate": 22, 
        "range_analysis": { 
         "table_scan": { 
         "rows": 225015710, 
         "cost": 2.7e8 
         } /* table_scan */, 
         "potential_range_indices": [ 
         { 
          "index": "PRIMARY", 
          "usable": false, 
          "cause": "not_applicable" 
         }, 
         { 
          "index": "idx_keyword", 
          "usable": true, 
          "key_parts": [ 
          "kw_id", 
          "id" 
          ] /* key_parts */ 
         }, 
         { 
          "index": "idx_iid", 
          "usable": false, 
          "cause": "not_applicable" 
         }, 
         { 
          "index": "idx_uid", 
          "usable": false, 
          "cause": "not_applicable" 
         } 
         ] /* potential_range_indices */, 
         "setup_range_conditions": [ 
         ] /* setup_range_conditions */, 
         "group_index_range": { 
         "chosen": false, 
         "cause": "cannot_do_reverse_ordering" 
         } /* group_index_range */ 
        } /* range_analysis */ 
        } /* rechecking_index_usage */ 
       } 
       ] /* attached_conditions_computation */, 
       "attached_conditions_summary": [ 
       { 
        "table": "`tem_sort_20170525`", 
        "attached": "((`tem_sort_20170525`.`uid` = 2259613579) and (`tem_sort_20170525`.`platform` in (12,11)))" 
       } 
       ] /* attached_conditions_summary */ 
      } /* attaching_conditions_to_tables */ 
      }, 
      { 
      "clause_processing": { 
       "clause": "ORDER BY", 
       "original_clause": "`tem_sort_20170525`.`kw_id` desc", 
       "items": [ 
       { 
        "item": "`tem_sort_20170525`.`kw_id`" 
       } 
       ] /* items */, 
       "resulting_clause_is_simple": true, 
       "resulting_clause": "`tem_sort_20170525`.`kw_id` desc" 
      } /* clause_processing */ 
      }, 
      { 
      "clause_processing": { 
       "clause": "GROUP BY", 
       "original_clause": "`tem_sort_20170525`.`kw_id`", 
       "items": [ 
       { 
        "item": "`tem_sort_20170525`.`kw_id`" 
       } 
       ] /* items */, 
       "resulting_clause_is_simple": true, 
       "resulting_clause": "`tem_sort_20170525`.`kw_id`" 
      } /* clause_processing */ 
      }, 
      { 
      "refine_plan": [ 
       { 
       "table": "`tem_sort_20170525`", 
       "access_type": "table_scan" 
       } 
      ] /* refine_plan */ 
      }, 
      { 
      "reconsidering_access_paths_for_index_ordering": { 
       "clause": "GROUP BY", 
       "index_order_summary": { 
       "table": "`tem_sort_20170525`", 
       "index_provides_order": true, 
       "order_direction": "desc", 
       "index": "idx_keyword", 
       "plan_changed": true, 
       "access_type": "index_scan" 
       } /* index_order_summary */ 
      } /* reconsidering_access_paths_for_index_ordering */ 
      } 
     ] /* steps */ 
     } /* join_optimization */ 
    }, 
    { 
     "join_execution": { 
     "select#": 1, 
     "steps": [ 
     ] /* steps */ 
     } /* join_execution */ 
    } 
    ] /* steps */ 
} 

{ 
    "steps": [ 
    { 
     "join_preparation": { 
     "select#": 1, 
     "steps": [ 
      { 
      "expanded_query": "/* select#1 */ select `item_sort_20170525`.`kw_id` AS `kw_id`,count(`item_sort_20170525`.`kw_id`) AS `count` from `item_sort_20170525` FORCE INDEX (`idx_uid`) where ((`item_sort_20170525`.`uid` = 896588234) and (`item_sort_20170525`.`platform` in (12,11))) group by `item_sort_20170525`.`kw_id` order by `item_sort_20170525`.`kw_id` desc limit 21" 
      } 
     ] /* steps */ 
     } /* join_preparation */ 
    }, 
    { 
     "join_optimization": { 
     "select#": 1, 
     "steps": [ 
      { 
      "condition_processing": { 
       "condition": "WHERE", 
       "original_condition": "((`item_sort_20170525`.`uid` = 896588234) and (`item_sort_20170525`.`platform` in (12,11)))", 
       "steps": [ 
       { 
        "transformation": "equality_propagation", 
        "resulting_condition": "((`item_sort_20170525`.`platform` in (12,11)) and multiple equal(896588234, `item_sort_20170525`.`uid`))" 
       }, 
       { 
        "transformation": "constant_propagation", 
        "resulting_condition": "((`item_sort_20170525`.`platform` in (12,11)) and multiple equal(896588234, `item_sort_20170525`.`uid`))" 
       }, 
       { 
        "transformation": "trivial_condition_removal", 
        "resulting_condition": "((`item_sort_20170525`.`platform` in (12,11)) and multiple equal(896588234, `item_sort_20170525`.`uid`))" 
       } 
       ] /* steps */ 
      } /* condition_processing */ 
      }, 
      { 
      "table_dependencies": [ 
       { 
       "table": "`item_sort_20170525` FORCE INDEX (`idx_uid`)", 
       "row_may_be_null": false, 
       "map_bit": 0, 
       "depends_on_map_bits": [ 
       ] /* depends_on_map_bits */ 
       } 
      ] /* table_dependencies */ 
      }, 
      { 
      "ref_optimizer_key_uses": [ 
       { 
       "table": "`item_sort_20170525` FORCE INDEX (`idx_uid`)", 
       "field": "uid", 
       "equals": "896588234", 
       "null_rejecting": false 
       } 
      ] /* ref_optimizer_key_uses */ 
      }, 
      { 
      "rows_estimation": [ 
       { 
       "table": "`item_sort_20170525` FORCE INDEX (`idx_uid`)", 
       "const_keys_added": { 
        "keys": [ 
        "idx_keyword" 
        ] /* keys */, 
        "cause": "group_by" 
       } /* const_keys_added */, 
       "range_analysis": { 
        "table_scan": { 
        "rows": 225015710, 
        "cost": 2e308 
        } /* table_scan */, 
        "potential_range_indices": [ 
        { 
         "index": "PRIMARY", 
         "usable": false, 
         "cause": "not_applicable" 
        }, 
        { 
         "index": "idx_keyword", 
         "usable": false, 
         "cause": "not_applicable" 
        }, 
        { 
         "index": "idx_iid", 
         "usable": false, 
         "cause": "not_applicable" 
        }, 
        { 
         "index": "idx_uid", 
         "usable": true, 
         "key_parts": [ 
         "uid", 
         "platform", 
         "id" 
         ] /* key_parts */ 
        } 
        ] /* potential_range_indices */, 
        "setup_range_conditions": [ 
        ] /* setup_range_conditions */, 
        "group_index_range": { 
        "chosen": false, 
        "cause": "not_applicable_aggregate_function" 
        } /* group_index_range */, 
        "analyzing_range_alternatives": { 
        "range_scan_alternatives": [ 
         { 
         "index": "idx_uid", 
         "ranges": [ 
          "896588234 <= uid <= 896588234 AND 11 <= platform <= 11", 
          "896588234 <= uid <= 896588234 AND 12 <= platform <= 12" 
         ] /* ranges */, 
         "index_dives_for_eq_ranges": true, 
         "rowid_ordered": false, 
         "using_mrr": false, 
         "index_only": false, 
         "rows": 585, 
         "cost": 704.01, 
         "chosen": true 
         } 
        ] /* range_scan_alternatives */, 
        "analyzing_roworder_intersect": { 
         "usable": false, 
         "cause": "too_few_roworder_scans" 
        } /* analyzing_roworder_intersect */ 
        } /* analyzing_range_alternatives */, 
        "chosen_range_access_summary": { 
        "range_access_plan": { 
         "type": "range_scan", 
         "index": "idx_uid", 
         "rows": 585, 
         "ranges": [ 
         "896588234 <= uid <= 896588234 AND 11 <= platform <= 11", 
         "896588234 <= uid <= 896588234 AND 12 <= platform <= 12" 
         ] /* ranges */ 
        } /* range_access_plan */, 
        "rows_for_plan": 585, 
        "cost_for_plan": 704.01, 
        "chosen": true 
        } /* chosen_range_access_summary */ 
       } /* range_analysis */ 
       } 
      ] /* rows_estimation */ 
      }, 
      { 
      "considered_execution_plans": [ 
       { 
       "plan_prefix": [ 
       ] /* plan_prefix */, 
       "table": "`item_sort_20170525` FORCE INDEX (`idx_uid`)", 
       "best_access_path": { 
        "considered_access_paths": [ 
        { 
         "access_type": "ref", 
         "index": "idx_uid", 
         "rows": 585, 
         "cost": 702, 
         "chosen": true 
        }, 
        { 
         "access_type": "range", 
         "rows": 439, 
         "cost": 821.01, 
         "chosen": false 
        } 
        ] /* considered_access_paths */ 
       } /* best_access_path */, 
       "cost_for_plan": 702, 
       "rows_for_plan": 585, 
       "chosen": true 
       } 
      ] /* considered_execution_plans */ 
      }, 
      { 
      "attaching_conditions_to_tables": { 
       "original_condition": "((`item_sort_20170525`.`uid` = 896588234) and (`item_sort_20170525`.`platform` in (12,11)))", 
       "attached_conditions_computation": [ 
       { 
        "access_type_changed": { 
        "table": "`item_sort_20170525` FORCE INDEX (`idx_uid`)", 
        "index": "idx_uid", 
        "old_type": "ref", 
        "new_type": "range", 
        "cause": "uses_more_keyparts" 
        } /* access_type_changed */ 
       } 
       ] /* attached_conditions_computation */, 
       "attached_conditions_summary": [ 
       { 
        "table": "`item_sort_20170525` FORCE INDEX (`idx_uid`)", 
        "attached": "((`item_sort_20170525`.`uid` = 896588234) and (`item_sort_20170525`.`platform` in (12,11)))" 
       } 
       ] /* attached_conditions_summary */ 
      } /* attaching_conditions_to_tables */ 
      }, 
      { 
      "clause_processing": { 
       "clause": "ORDER BY", 
       "original_clause": "`item_sort_20170525`.`kw_id` desc", 
       "items": [ 
       { 
        "item": "`item_sort_20170525`.`kw_id`" 
       } 
       ] /* items */, 
       "resulting_clause_is_simple": true, 
       "resulting_clause": "`item_sort_20170525`.`kw_id` desc" 
      } /* clause_processing */ 
      }, 
      { 
      "clause_processing": { 
       "clause": "GROUP BY", 
       "original_clause": "`item_sort_20170525`.`kw_id`", 
       "items": [ 
       { 
        "item": "`item_sort_20170525`.`kw_id`" 
       } 
       ] /* items */, 
       "resulting_clause_is_simple": true, 
       "resulting_clause": "`item_sort_20170525`.`kw_id`" 
      } /* clause_processing */ 
      }, 
      { 
      "refine_plan": [ 
       { 
       "table": "`item_sort_20170525` FORCE INDEX (`idx_uid`)", 
       "pushed_index_condition": "((`item_sort_20170525`.`uid` = 896588234) and (`item_sort_20170525`.`platform` in (12,11)))", 
       "table_condition_attached": null, 
       "access_type": "range" 
       } 
      ] /* refine_plan */ 
      } 
     ] /* steps */ 
     } /* join_optimization */ 
    }, 
    { 
     "join_execution": { 
     "select#": 1, 
     "steps": [ 
      { 
      "creating_tmp_table": { 
       "tmp_table_info": { 
       "table": "intermediate_tmp_table", 
       "row_length": 13, 
       "key_length": 4, 
       "unique_constraint": false, 
       "location": "memory (heap)", 
       "row_limit_estimate": 161319 
       } /* tmp_table_info */ 
      } /* creating_tmp_table */ 
      }, 
      { 
      "filesort_information": [ 
       { 
       "direction": "desc", 
       "table": "intermediate_tmp_table", 
       "field": "kw_id" 
       } 
      ] /* filesort_information */, 
      "filesort_priority_queue_optimization": { 
       "limit": 21, 
       "rows_estimate": 540, 
       "row_size": 12, 
       "memory_available": 720896, 
       "chosen": true 
      } /* filesort_priority_queue_optimization */, 
      "filesort_execution": [ 
      ] /* filesort_execution */, 
      "filesort_summary": { 
       "rows": 22, 
       "examined_rows": 530, 
       "number_of_tmp_files": 0, 
       "sort_buffer_size": 440, 
       "sort_mode": "<sort_key, rowid>" 
      } /* filesort_summary */ 
      } 
     ] /* steps */ 
     } /* join_execution */ 
    } 
    ] /* steps */ 
} 
+0

Wie viele Zeilen in der Tabelle? Wie viele haben "uid" = 2259613579? –

Antwort

1

Ihre Suche:

SELECT `kw_id`, COUNT(kw_id) AS `count` 
    FROM `item_sort_20170525` 
    WHERE `uid` = 896588234 
    AND `platform` IN (12, 11) 
    GROUP BY `kw_id` 
    ORDER BY `kw_id` DESC 
    LIMIT 21; 

Hier haben Sie zwei Filterkriterien: uid Gleichheit und platform in einem Satz. Dann haben Sie ein Gruppierungskriterium, das auch ein umgekehrtes Ordnungskriterium ist.

Können Sie das platform Kriterium von einem Satz in einen Bereich ändern? Wenn ja, mach es. platform BETWEEN 11 AND 12. Es sieht so aus, als ob der Abfrageplaner das selbst herausgefunden hat.

Dann versuchen Sie einen zusammengesetzten Index, der mit Gleichheits-Kriterien beginnt, hat dann Bereichskriterien und dann Gruppierungskriterien. In diesem Fall:

(uid, platform, kw_id) 

Das sollte lassen Sie Ihre Abfrage von einem Indexbereich Scan zufrieden sein. Das Hinzufügen von kw_id zu dem Index macht es zu einem , der den Index abdeckt, was bedeutet, dass alles, was von der Abfrage benötigt wird, durch den Index erfüllt werden kann. Es kann auch eine Rückwärtsbereichsuche ermöglichen, um die DESC Bestellung zu erzeugen.

Auch, weil Sie kw_id als NOT NULL deklariert haben, können Sie COUNT(*) anstelle von COUNT(kw_id) verwenden. Das kann helfen, aber wahrscheinlich nicht viel.

Pro-Tipp: Formatieren Sie Ihre Abfragen immer so, dass Ihre Auswahl-, Filter-, Gruppierungs- und Bestellkriterien auf Sie überspringen, wenn Sie sie betrachten. Je mehr Zeilen Sie in Ihren Tabellen haben, desto wichtiger wird dies.

+0

vielen dank, und ich habe eine andere frage: warum die große zahl index nicht verwenden? is't the big integer number – Coola

1

O. Jones Antwort ist sehr gut. Es gibt zwei Dinge, die Sie ausprobieren können:

SELECT kw_id, SUM(cnt) 
FROM ((SELECT `kw_id`, COUNT(*) AS cnt 
     FROM `item_sort_20170525` 
     WHERE `uid` = 896588234 AND `platform` = 11 
    ) UNION ALL 
     (SELECT `kw_id`, COUNT(*) AS cnt 
     FROM `item_sort_20170525` 
     WHERE `uid` = 896588234 AND `platform` = 12 
    ) 
    ) i 
GROUP BY `kw_id` 
ORDER BY `kw_id` DESC 
LIMIT 21; 

Sie den gleichen Index möchten, item_sort_20170525(uid, platform, kw_id). MySQL sollte in der Lage sein, die Dateisortierung für die innere Gruppe zu entfernen. Also, wenn es nicht sehr viele kw_id s gibt, dann sollte der äußere group by nicht sehr teuer sein.

Eine weitere Option ist die Verwendung einer korrelierten Unterabfrage. Dies setzt voraus, dass Sie irgendwo eine Liste von kw_id s haben. Die Abfrage sieht aus wie

select kw_id, 
     (select count(*) 
     from `item_sort_20170525` i 
     where i.kw_id = k.kw_id and `uid` = 896588234 and 
       `platform` in (11, 12) 
     ) as cnt 
from kw 
order by kw.kw_id desc; 

Diese Version, wenn die meisten werden arbeiten/alle kw_id s mindestens eine passende Zeile in der Artikel-Tabelle haben. Für diese Abfrage möchten Sie einen Index für item_sort_20170525(kw_id, uid, platform).

+0

Mit einer gigarow-scale-Tabelle lohnt es sich, alle möglichen Dinge auszuprobieren, um effiziente Abfragen zu erhalten! Gute Ergänzungen. –

+0

vielen Dank, und ich habe eine andere Frage: Warum die große Zahl Index nicht verwenden? ist die große ganze Zahl – Coola