1. 程式人生 > >在大量資料中進行查詢,有無索引查詢的速度效果測試

在大量資料中進行查詢,有無索引查詢的速度效果測試

首先在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萬條資料 程式就運行了十幾分鍾。再大的資料量我怕電腦會燒,本人只是一個初入門級的菜鳥,還請各位大佬對在下錯誤的地方多多批評,在下感激不盡。

相關推薦

大量資料進行查詢索引查詢速度效果測試

首先在JAVA程式中向資料庫中進行資料的插入 ,因為要利用索引 ,少量的資料是不能夠測試出索引的效果,所以要插入大量的資料進行測試,這次我們插入50萬條記錄 JAVA程式如下:建立一個表classfor,向其中錄入50萬條記錄 package com.oracle.jdbc

如何在有限的記憶體的情況下找到大量資料重複查詢次數最多的語句

//500K記憶體,100萬條資料,尋找裡面重複查詢次數最多的記錄 //思想顯示對100萬條資料分在不同的檔案中,但是在分檔案中的時候,要對起進行一定處理,分到對於的檔案中,比如分成100個 //檔案,那麼對每一條string進行hash得到的整數值%100,這樣就分到不同

oracle數據庫有數據通過pl/sql查詢不到用sqlplus能查到PL/SQL developer會對數據進行本地緩存

新增 不出 BE product 連接 進入 java myba In 這幾天遇到了兩個問題,都很奇葩,苦惱了三天,最終還是定位出來了。 問題一、通過pl/sql developer插入數據到遠程oracle數據庫服務器,通過pl/sql developer查詢能查詢到數據

Spark元件Mllib的學習11之使用ALS對movieLens一百萬條(1M)資料進行訓練並對輸入的新使用者資料進行電影推薦

1解釋 spark-1.5.2 資料集:http://grouplens.org/datasets/movielens/ 一百萬條(1M) 資料劃分: 將樣本評分表以key值切分成3個部分,分別用於訓練 (60%,並加入使用者評分), 校驗 (20

GreenDao查詢時會查不到資料解決方法。

greendao 實體類的id 需要設定為Long 例如根據ID查詢資料 我這ID是long型別, 執行for迴圈第一次能查到, 第二次就查不到。 根據多次實驗,把ID轉成Long型別再執行查詢就沒有問題了, @Override public void updateI

表單input name屬性[]的區別

urn get() tro this 區別 tex () efault type 1 input數組 如下一個表單: <input type="text" name="username[]" value="Jason" /> <input type="te

17種資料視覺化圖表哪些適用場景?

隨著時代的發展,越來越多的資料量堆積,然而這些密密麻麻的資料的可讀性較差並且毫無重點,而資料視覺化更加直觀有意義,更能幫助資料更易被人們理解和接受。 因此運用恰當的圖表實現資料視覺化非常重要,本文歸結圖表的特點,彙總出一張思維導圖,幫助大家更快地選擇展現資料特點的圖表型別。 圖表型別-思

如何從大量資料找出異常值

前言 機器學習中資料預處理階段,首先要考慮的就是將資料集中的異常值找出來,然後再做額外處理。當然,異常值的處理並不存在什麼銀彈,只能具體情況具體分析再根據效果選擇處理方法。 直方圖 看看資料集直方圖也許能看出點端倪,比如下面這個圖,下方的是原始資料集,上面的是對應直方圖,可以看到大多數都分佈在11000

Python:列表按某一列作為索引查詢其他列表對應資訊找到後插入當前列表。

直接複製,修改地址後使用。修改三個位置,如備註。 #coding=utf-8 import os.path import numpy as np if __name__=="__main__":  list_1_txt= open('list1.txt')#這裡,讀取第一個列表 &

資料技術學習路線信心能堅持學習的朋友從現在開始吧

如果你看完有信心能堅持學習的話,那就當下開始行動吧! 一、大資料技術基礎 1、linux操作基礎 linux系統簡介與安裝 linux常用命令–檔案操作 linux常用命令–使用者管理與許可權 linux常用命令–系統管理 linux常用命令–免密登陸

淺談裝置驅動的作用與本質作業系統Linux裝置驅動的區別

  一、驅動的作用 任何一個計算機系統的執行都是系統中軟硬體協作的結果,沒有硬體的軟體是空中樓閣,而沒有軟體的硬體則只是一堆廢鐵。硬體是底層基礎,是所有軟體得以執行的平臺,程式碼最終會落實為硬體上的組合邏輯與時序邏輯;軟體則實現了具體應用,它按照各種不同的業務需求而設計,滿足了使用

資料技術學習路線信心能堅持學習的朋友從現在開始學習吧

      大資料技術前景我們是毋庸置疑的,而對於學習更是爭先恐後。在這些人中,不乏有已經在it圈混跡好幾年的程式設計師,自然也有初出茅廬的零基礎小白。說實話,大資料不比程式設計學習,還是需要一定的基礎的,那些說根本不需要基礎的人,你出來,保證不打死你

菲波那契數——根據輸入資料的n輸出第n項菲波那契數

1211:Description: 已知菲波那契數的定義: f(0) = 0 f(1) = 1 f(n) = f(n-1) + f(n-2) n>1的整數 根據輸入資料中的n,輸出第n項菲波那契數。 Input: 輸入資料中含有一些整數n(0≤n≤46)。 Ou

(一)solr 7.31版本window系統全程安裝搭建涵蓋專案用到的大部分配置常用查詢solr多條件查詢、排序配置資料庫定時同步全量與增量更新使用solrJ在java程式進行增刪改查

前言:由於專案最近在做淘寶客商品資訊查詢這一塊,做搜尋引擎,離不開全文搜尋伺服器,我這裡選擇了solr。solr的好處可以自行百科,這裡主要是講解技術。這篇文章主要講解window的安裝和使用。若大家感興趣或者專案用到,希望你能跟著我的步驟進行下去,如果遇到問題,可以後續看下我在最底下的問題

樣式的層級關係選擇器優先順序樣式衝突以及抽離樣式模組怎麼寫說出思路實踐經驗

1、樣式的層級關係:一個是權重,另一個就是共用樣式和私用樣式了,比如說兩個ul,它們的子元素除了背景色之外都一樣,那可以直接用li {}來定義相同的公用樣式,用 .ul_1 li {} , .ul_2 li {} 來定義不相同的樣式。可以根據元素之間的差別來選擇用哪種方法

關於資料臺系統需要了解哪些技術?

導讀:之前整理了一篇“全面解讀資料中臺,讓企業實現數字化轉型”文章,闡述了什麼是資料中臺、建立的原因和原則。今天讓我們全面解讀中臺,包括企業為什麼要平臺化,目前中臺都有哪些形式,實施中臺系統的優勢、面臨的問題以及建議都有哪些?   中臺這個概念早期是由美軍

mysqlor和in的效率問題 (索引差別很大o(n)/log(n))

mysql中or和in的效率問題        在網上一直看到的是or和in的效率沒啥區別,一直也感覺是這樣,前幾天剛好在看《mysql資料庫開發的36條軍規》的文章,裡面提到了or和in的效率問題,文中提到or的效率為O(n),而in的效率

A/B 測試的基本概念舉例理解以及具體實現方法【傳統A/B測試基於後端的 A/B 測試(Back-end AB test)現在基本上基於前端js在客戶端進行分流更多優點請看裡面】

文章來源:http://www.aliued.cn/2010/09/27/ab-testing-realization-method.html 什麼是A/B測試?以及如何進行? 很多朋友都問我怎麼進行A/B測試,我一般都不直接回答他們的問題,而是首先問一句:“你的日

從NCBI基因組資料獲得cdspep和geneID對應表

在做基因組相關分析時,我們常常需要從基因組中提取cds,並翻譯成相應的pep序列。此指令碼,以NCBI資料庫中標準的基因組序列檔案和對應的gff檔案為輸入檔案,快速獲得cds序列,pep序列,RNA,Protein和gene的對應關係表等相關檔案。 A perl scrip

csscontent屬性什麼作用?什麼應用?

這裡是修真院前端小課堂,每篇分享文從 【背景介紹】【知識剖析】【常見問題】【解決方案】【編碼實戰】【擴充套件思考】【更多討論】【參考文獻】 八個方面深度解析前端知識/技能,本篇分享的是: 【css中content屬性,有什麼作用?有什麼應用? 】 1.背景介紹 content