MySQL中分组与分组的性能比较

最近我在网上看到了一些测试,他们觉得不太准确。他们今天对他们进行了测试,得出的结论是,个人计算机上的测试过程可能不够全面,仅供参考。

测试过程:

准备测试单


创建表(` test_test `
` ID ` int(11)不为空auto_increment,
` Num ` int(11)不为空的默认'0',
主键(id)
)= MyISAM引擎默认的字符集utf8 auto_increment = 1;



建立一个存储过程插入数据到表10w酒吧


创建程序p_test(PA INT(11))
开始

声明max_num int(11)默认100000;
声明int默认为0;
声明rand_num int;

select count(ID)从test_test为max_num;

当我做爸爸的时候
如果max_num<100000
选择演员(RAND()* 100为无符号)为rand_num;
插入test_test(努姆)值(rand_num);
最后如果;
设置i = i + 1;
结束的时候;
终点



调用存储过程插入数据




电话p_test(100000);



开始测试:(无索引)


选择不同的民从test_test;
选择从表test_test组数;

{ }选择不同的民从test_test SQL;
受影响的线:0
时间:0.078ms

{语句}
选择从表test_test组数;
受影响的线:0
时间:0.031ms




二、在数字字段上创建一个索引




修改表` test_test `添加索引` num_index `(` Num `);



再查询


选择不同的民从test_test;
选择从表test_test组数;
{ }选择不同的民从test_test SQL;
受影响的线:0
时间:0.000ms

{语句}
选择从表test_test组数;
受影响的线:0
时间:0.000ms




这时,我们发现时间太小了,不能精确0秒。

我们到命令行测试。




设置分析= 1;
MySQL >选择不同(NUM)从test_test;
MySQL >选择民从test_test组数;
显示配置文件;
+ + + + ---------- ------------ ----------------------------------------
query_id时间查询| | | |
+ + + + ---------- ------------ ----------------------------------------
| 1 | 0.00072550 |截然不同(NUM)从test_test |
| 2 | |选择民|从test_test组0.00071650号
+ + + + ---------- ------------ ----------------------------------------




分析uff1a

在索引之后,显式的速度比索引的明显快107倍。

在索引之后,组的速度比没有索引的组快43倍。

对照组

是否添加或索引组的速度比明显的要快。

因此,建议在使用时选择组。

以上是MySQL中区分与分组性能的比较。通过以上的比较,我们对不同的群体有了更深的理解,希望能帮助你学习。