这可以进一步优化吗?

时间:2013-10-23 05:06:15

标签: mysql optimization profiling query-optimization

我有这个查询

select counterparty_id, max(id) max_id from client_administrations where counterparty_type = 1 and effective_on <= '2013-10-22' group by counterparty_id

当我解释这个查询时,它给了我

  

** * ** * ** * 的** * * 1.行 * ** * ** * * * * ** *
             id:1
    select_type:SIMPLE
          表:client_administrations
           类型:索引
  possible_keys:NULL
            关键:cec
        key_len:11
            ref:NULL
           行:234969
          额外:使用在哪里;使用索引
  1行(0.00秒)

此查询返回2,34,630行,运行时间为0.18秒。但问题是这个查询在给定的功能中被多次使用,并且数据库中的行甚至可能高达10万。这是我的担忧。我试过这个

的分析
  

的MySQL&GT;显示查询1的配置文件;
  + ---------------------- + ---------- +
  |状态|持续时间|
  + ---------------------- + ---------- +
  |开始| 0.000126 |
  |检查权限| 0.000018 |
  |打开表| 0.000032 |
  |系统锁定| 0.000016 |
  | init | 0.000051 |
  |优化| 0.000029 |
  |统计| 0.000145 |
  |准备| 0.000047 |
  |执行| 0.000010 |
  |排序结果| 0.000009 |
  | 发送数据| 0.117429 |
  |结束| 0.000024 |
  |查询结束| 0.000007 |
  |关闭表| 0.000012 |
  |释放物品| 0.000016 |
  |记录慢查询| 0.000004 |
  |清理| 0.000005 |
  + ---------------------- + ---------- +

这表明发送数据需要最长的时间。我localhost中的RAM大小为3GG,服务器中的RAM大小为32 GB。即使这样也不会对查询执行所花费的时间产生任何影响。它不仅适用于此查询,而且在我的数据库中有几个查询,尽管在&#34; extra&#34;中有索引。列说明发送分析数据时所花费的最长时间。我确实改变了一些全局变量。这是我的全局变量的默认设置

  

的MySQL&GT;显示变量,如&#34;%cache%&#34;;
  + ------------------------------ + ------------------ ---- +
  | Variable_name |价值|
  + ------------------------------ + ------------------ ---- +
  | binlog_cache_size | 32768 |
  | binlog_stmt_cache_size | 32768 |
  | have_query_cache |是|
  | key_cache_age_threshold | 300 |
  | key_cache_block_size | 1024 |
  | key_cache_division_limit | 100 |
  | max_binlog_cache_size | 18446744073709547520 |
  | max_binlog_stmt_cache_size | 18446744073709547520 |
  | metadata_locks_cache_size | 1024 |
  | query_cache_limit | 1048576 |
  | query_cache_min_res_unit | 4096 |
  | query_cache_size | 16777216 |
  | query_cache_type | ON |
  | query_cache_wlock_invalidate | OFF |
  | stored_program_cache | 256 |
  | table_definition_cache | 400 |
  | table_open_cache | 400 |
  | thread_cache_size | 8 |
  + ------------------------------ + ------------------ ---- +

可以做些什么来帮助这个&#34;发送数据&#34;部分。任何帮助将不胜感激

0 个答案:

没有答案