mysql数据库InnoDB存储引擎count统计加速方法

发布时间:2020-09-06编辑:脚本学堂
有关mysql数据库InnoDB存储引擎中count查询统计的加速方法,介绍了count函数的使用技巧,使用count统计计数的例子,需要的朋友参考下。

在sql server数据库中,count语句用法:
 

select count(1) from table use index (unique key);

相比使用主键索引,要快得多,测试1000W生产环境数据,快了至少3倍。
 

复制代码 代码示例:

EXPLAIN SELECT COUNT(1) from `order` USE INDEX (PRIMARY)G; 
*************************** 1. row *************************** 
           id: 1 
  select_type: SIMPLE 
        table: order 
         type: index 
possible_keys: NULL 
          key: PRIMARY 
      key_len: 8 
          ref: NULL 
         rows: 1 
        Extra: Using index 
1 row in set (0.01 sec) 

[sql] view plaincopy
EXPLAIN SELECT COUNT(1) from `order` USE INDEX (UNQ_p)G; 
*************************** 1. row *************************** 
           id: 1 
  select_type: SIMPLE 
        table: order 
         type: index 
possible_keys: NULL 
          key: UNQ_p 
      key_len: 99 
          ref: NULL 
         rows: 1 
        Extra: Using index 
1 row in set (0.00 sec) 

这个非聚集索引比主键索引还列宽还长些:
 

复制代码 代码示例:

SELECT COUNT(1) from `order` USE INDEX (UNQ_p);           
+----------+ 
| COUNT(1) | 
+----------+ 
| 10984918 | 
+----------+ 
1 row in set (36.60 sec) 

SELECT COUNT(1) from `order` USE INDEX (PRIMARY);           
+----------+ 
| COUNT(1) | 
+----------+ 
| 10984918 | 
+----------+ 
1 row in set (1 min 31.57 sec)