在大量数据中进行查询,有无索引查询的速度效果测试
来源:互联网 发布:js旋转木马轮播图 编辑:程序博客网 时间:2024/06/08 13:50
首先在JAVA程序中向数据库中进行数据的插入 ,因为要利用索引 ,少量的数据是不能够测试出索引的效果,所以要插入大量的数据进行测试,这次我们插入50万条记录
JAVA程序如下:建立一个表classfor,向其中录入50万条记录
package com.oracle.jdbc1.test;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;public class TestUpdate {public static void main(String[] args) {try {Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/for1703a", "root", "root");Statement stat=conn.createStatement();StringBuilder sb=new StringBuilder();for(int i=0;i<500000;i++){ sb.append("("+(i+1)+",'wowo"+(i+1)+"',"+i+")"); if(i!=499999){sb.append(",");}}System.out.println(sb.toString());int num=stat.executeUpdate("insert into classfor1(id,name,number) values "+sb.toString());System.out.println(num);conn.close();} catch (SQLException e) {e.printStackTrace();}}}
首先进行无索引的测试:以上是无索引等值查询,用时0.144ms;
以上是无索引范围查询,用时0.303ms;
接下来进行索引查询:这里有一个问题大家要注意,就是在选择索引方式的时候,要注意引擎的选择,因为有的引擎只支持一个索引方式,所以我选择了两个索引方式都兼容的MEMORY引擎,如下图:
我们首先测试BTERR索引方式进行查询:
BTREE索引方式下等值查找:用时0.001ms;
BTREE索引方式下范围查找:用时0.001ms;
接下来进行HASH索引方式查询:
HASH索引方式下的等值查询:用时0.001ms;
HASH索引方式下的范围查询:用时0.001ms;
根据数据显示,在几十万条记录乃至更多的数据中查询想要获得的结果时,利用索引查询是非常必要的,可以节省时间,提高一定的效率。
本人曾经在某博客中看到HASH和BTREE索引方式是不同的,HASH更适合等值查找,例如= 或者!=,不适合范围查询,而BTREE更适合范围查询,因为其没有HASH冲突。但是本次试验没有测试出两者的区别,我猜可能数据量还是不够,但是本人电脑太次,我插入50万条数据 程序就运行了十几分钟。再大的数据量我怕电脑会烧,本人只是一个初入门级的菜鸟,还请各位大佬对在下错误的地方多多批评,在下感激不尽。
阅读全文
0 0
- 在大量数据中进行查询,有无索引查询的速度效果测试
- 比较有索引和无索引的查询速度(在mysql数据库中)
- mysql索引提升查询速度的实例测试
- 在SQLite中使用索引优化查询速度
- 在SQLite中使用索引优化查询速度
- 在SQLite中使用索引优化查询速度(转)
- 在SQLite中使用索引优化查询速度
- 在SQLite中使用索引优化查询速度
- 如何在数据库中创建索引,提高查询速度
- python中使用collection.find()在mongodb中查询大量数据时的问题
- 在DataTable中进行数据查询
- Q:一个数据表中有大量数据,如何提高查询速度?
- 表主键排序和离散数据查询的速度测试
- mySQL大量数据中去重复查询
- Mysql优化查询速度进行中
- 索引为什么降低了查询的速度?
- 数据库的索引大幅度优化查询速度
- 索引与查询速度之间的影响
- c学习历程:输出菱形图案
- C语言系列学习笔记
- 欢迎使用CSDN-markdown编辑器
- ruby文件从命令行中接收参数
- NOIP复赛复习(二)竞赛环境与注意事项
- 在大量数据中进行查询,有无索引查询的速度效果测试
- 对比腾讯、163、商务密邮、360加密邮,发加密邮件用哪个更好
- WinEdt 8.1 (WinEdt 7) 注册方法
- java集合类框图
- 使用Tablayout实现安卓导航栏效果
- 机器学习-用python绘制常见的统计分布
- ...Uncaught TypeError: Cannot use 'in' operator to search for“length”in { json数据 }
- Git 清理无效的远程追踪分支
- BZOJ 3333: 排队计划 树状数组 线段树