1. 程式人生 > >mysql分別用數字INT和中文varchar做索引查詢效率上差多少

mysql分別用數字INT和中文varchar做索引查詢效率上差多少

效能相當,mysql中區別性能的是採用哪種索引方式,而不是索引的資料型別。
MySQL的btree索引和hash索引的區別
hash 索引結構的特殊性,其檢索效率非常高,索引的檢索可以一次定位,不像btree(B-Tree)索引需要從根節點到枝節點,最後才能訪問到頁節點這樣多次的IO訪問,所以 hash 索引的查詢效率要遠高於 btree(B-Tree) 索引。

雖然 hash 索引效率高,但是 hash 索引本身由於其特殊性也帶來了很多限制和弊端,主要有以下這些。
(1)hash 索引僅僅能滿足=,<=>,IN,IS NULL或者IS NOT NULL查詢,不能使用範圍查詢。
由於 hash 索引比較的是進行 hash 運算之後的 hash 值,所以它只能用於等值的過濾,不能用於基於範圍的過濾,因為經過相應的 hash 演算法處理之後的 hash 值的大小關係,並不能保證和hash運算前完全一樣。

(2)hash 索引無法被用來避免資料的排序操作。
由於 hash 索引中存放的是經過 hash 計算之後的 hash 值,而且hash值的大小關係並不一定和 hash 運算前的鍵值完全一樣,所以資料庫無法利用索引的資料來避免任何排序運算;

相關推薦

mysql分別數字INT中文varchar索引查詢效率多少

效能相當,mysql中區別性能的是採用哪種索引方式,而不是索引的資料型別。MySQL的btree索引和hash索引的區別hash 索引結構的特殊性,其檢索效率非常高,索引的檢索可以一次定位,不像btree(B-Tree)索引需要從根節點到枝節點,最後才能訪問到頁節點這樣多次的

求第n個斐波那契數(分別遞迴非遞迴兩種方法求解)

斐波那契數列指的是這樣一個數列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55……這個數列從第3項開始,每一項都等於前兩項之和。 這裡分別用遞迴和非遞迴的方法實現: 遞迴 #define _CRT_SECURE_NO_WARNINGS 1 #include&l

mysql中兩個int欄位建立聯合索引,沒有索引

這兩天有一個任務表 t_task_list ,搜尋條件下面都有,相關的索引也有,但就是用不到索引,應該是跟資料分佈有關,所以對索引做了調整。 最重要的不是對索引做了調整,而是,不要以為建了索引就一定能用到,還是根據資料的分佈情況來決定的,以後多注意吧,有慢查詢,一定看sql,看expl

javascript分別for迴圈遞迴計算不死神兔

function getSum(n) {   var n1 = 1;  //初始化兩個月的兔子個數   var n2 = 1;   var sum = 1;  //定義一個累加和 ,如果傳遞的是1或者2,預設值為1   for(var i = 3; i <= n; i++) {   sum =

每天一點點之資料結構與演算法 - 應用 - 分別連結串列陣列實現LRU緩衝淘汰策略

一、基本概念: 1、什麼是快取? 快取是一種提高資料讀取效能的技術,在硬體設計、軟體開發中都有著非廣泛的應用,比如常見的CPU快取、資料庫快取、瀏覽器快取等等。   2、為什麼使用快取?即快取的特點 快取的大小是有限的,當快取被用滿時,哪些資料應該被清

3.1分別遞迴非遞迴方式實現二叉樹先序、中序後序遍歷

題目 用遞迴和非遞迴方式,分別按照二叉樹先序、中序和後序列印所有的節點。 首先給出二叉樹節點結構定義: public class BinaryTreeNode { //二叉樹節點 private int data; private Bi

分別OpenCV-PythonNumpy實現傅立葉變換逆傅立葉變換

Numpy實現 fft = np.fft.fft2(img) 將空間域轉化為頻率域 OpenCV實現 dft = cv2.dft(np.float32(img),flag=cv2.DFT_COMPLEX_OUTPUT) 這個函式與np.fft.fft2(img)實現相同的功能,但要注意先

java連結串列 分別內部類外部類實現

        在這裡我將使用外部類和內部類兩種方法來實現java的連結串列,參考了java老師上課講過的程式碼~         主要思想是:首先要有一個Node類(節點類),其成員變數為String 型別的name,還有一個Node型別的next,作為指向下一個節點的指

MySql解決不區分大小寫中文模糊查詢問題

轉載自:http://blog.163.com/origin_zmn/blog/static/1837026922011720101328642/ BINARY不是函式,是型別轉換運算子,它用來強制它後面的字串為一個二進位制字串,可以理解為在字串比較的時候區分大小寫 第

遞迴調搜索多執行緒搜尋檔案效率對比

先上結果: 多執行緒版本輸出: used time is: 0.014919s all thread is done scan completed, there are 10740 file(s) and 211 document(s) t

【推薦系統】2017年,你還在使用者畫像協同過濾推薦系統嗎?

本文是大資料雜談 7 月 13 日社群公開課分享整理,也是第四正規化主題月的第二堂公開課內容。 今天想和大家分享,如何使用大規模機器學習解決真實的業務問題。我們今天會以機器學習中的一個典型場景為例來講解,即基於大規模機器學習模型的推薦系統。 推薦系統的本質是什麼? 比如說我們看到手機淘寶首頁,往下一

2017年,你還在使用者畫像協同過濾推薦系統嗎?

本文是大資料雜談 7 月 13 日社群公開課分享整理,也是第四正規化主題月的第二堂公開課內容。 今天想和大家分享,如何使用大規模機器學習解決真實的業務問題。我們今天會以機器學習中的一個典型場景為例來講解,即基於大規模機器學習模型的推薦系統。 推薦系統的本質是什麼? 比

基於Oracle資料庫,SSM框架easyUI實現分頁查詢操作

基於Oracle資料庫,用SSM框架和easyUI來實現分頁查詢操作: 第一步,首先擬定好資料庫中的表,在eclipse裡面用maver專案搭配好SSM框架(其中關於SSM框架的pom.xml,spring-mvc.xml,spring-bean.xml,以及webapp目錄下的WEB-INF

vue-cliiview相關專案不相容ie問題

使用vue-cli做專案,一般不會相容ie瀏覽器,究其原因就是瀏覽器對ES6中的promise無法支援,因此需要通過引入babel-polyfill來是我們的瀏覽器正常使用es6的功能首先通過npm 安裝npm install --save-dev babel-polyfil

window.locationwindow.open連結的區別 //轉載

在給按鈕、表格、單元格、下拉列表和DIV等做連結時一般都要用Javascript來完成,和做普通連結一樣,可能我們需要讓連結頁面在當前視窗開啟,也可能需要在新視窗開啟,這時我們就可以使用下面兩項之一來完成: win

ListDictionary泛型類查詢效率淺析

        List和Dictionary泛型類查詢效率存在巨大差異,前段時間親歷了一次。事情的背景是開發一個匹配程式,將書籍(BookID)推薦給網友(UserID),生成今日推薦資料時,有條規則是同一書籍七日內不能推薦給同一網友。         同一書籍七日內不能推

(轉)mysql數據庫中存儲數字字段時,選擇intvarchar的區別

排序 mysql數據庫 SQ AR 設計 規則 使用 char 字段 從字段類型的執行效率上,int最高,varchar最低。狀態類型字段,使用char或者varchar是不可取的,int類型更容易建立索引和進行檢索,畢竟數字類型是數據庫檢索的基礎,char類型的畢竟需要經

mysqlintvarchar的長度

2011-09-19 周海漢 abloz.com 2011.9.19 mysql 欄位中int後面所跟數字有何意義? varchar後的數字又有何意義? mysql> create table t(a int(1));

MySQL 實現調外部程序系統命令

基本 variables clu sch linu popu logserver git arm MySQL 實現調用外部程序和系統命令Refer:http://www.cnblogs.com/yunsicai/p/4080864.html1) Download lib

基於thrift的javapython分別作為客戶端服務端的調實現

Coding except arr pes com ssa utf-8 encoding 中文亂碼 前面已經實現了純java的thrift的實現。 現在實現實現一下python作為客戶端和服務端的thrift的調用 1.python作為客戶端,java作為服務端 java服