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中区分与分组性能的比较。通过以上的比较,我们对不同的群体有了更深的理解,希望能帮助你学习。