处理并发---索引的优点(实验贴)

1,测试验证用到的简单的sql语句:
/* Formatted on 2010-6-29 11:56:58 (QP5 v5.115.810.9015) */
SELECT *
FROM (SELECT row_.*, ROWNUM rownum_
FROM (SELECT "order_date"
FROM "test"
WHERE "order_no" =
TRUNC (DBMS_RANDOM.VALUE (24, 50024))) row_
WHERE ROWNUM <= 20)
WHERE rownum_ > 0

2,数据准备说明
a,本次对一个有5个字段的表test进行基本测试,验证两种情况:一,字段order_no有索引;二,字段order_no无所有,有无索引时做相同的测试验证
b,相应时间单位:ms
c,测试验证分同时并发和分钟并发两种情况验证
d,表中有50000条数据
3,测试得到的数据

同时并发
10并发 50并发 80并发 100并发
无索引 756 2109 3053 3723
有索引 357 385 413 430


分钟并发
200并发 500并发 1000并发 1500并发
无索引 255 260 10702 33163
有索引 4 3 1 4


4,结论总结
1,500以下的并发,有无索引,用户不会有太明显的感觉,因为他们的执行时间都不会大于0.3s
2,以“较高(500~3000)”并发频率对50000数据的表进行简单的查询,此时有无索引就会有明显的差别,可以达到5s以上
3,以“极高(>3000)”并发频率对50000数据的表进行简单的查询,此时相应时间就会很慢,很慢

结合实际应用考虑,一些简单的表(字段不太多,结果不复杂),在单个用户反复执行sql语句时,有无索引对用户来说可能体验不到响应时间上的差异,而对于多用户并发对这个表做操作时,有无索引的差异就会很明显:在“较低”频率并发情况下,由于表比较简单,响应时间很小,看不出大的差异,当并发频率“较高”,如大于500时,这种差异就会很明显,如上面1500的并发,响应时间相差3s,依此类推,如果表字段很多,嵌套结构复杂,有无索引并发执行的差异将会很大,有些认知,觉得数据量少,字段少无需索引,单考虑并发性能还是把索引建上


[img]http://dl.iteye.com/upload/attachment/0065/5913/ca889fe9-7d01-352b-8b48-d1be5aebc88e.jpg[/img]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值