索引

索引是一種特殊的文件(innoDB數(shù)據(jù)表上的索引是表空間的一個組成部分)


數(shù)據(jù)量大經常查詢需要建立索引


索引可以加快數(shù)據(jù)庫運行速度


創(chuàng)建測試表

use TCL


create table text_index(title varchar(10));








插入十萬條數(shù)據(jù)

from pymysql import connect


def main():


? ? #創(chuàng)建Connection連接


? ? conn = connect(host = 'localhost',port = 3306,user = 'root' ,password = 'hezhuang',database = 'TCL',charset = 'utf8')


? ? #? 獲得Cursor對象


? ? cursor = conn.cursor()


? ? #插入十萬條數(shù)據(jù)


? ? for? i? in range(100000):


? ? ? ? corsor.execute("insert into text_index values('ha-%d')"%i)


? ? #提交數(shù)據(jù)


? ? conn.commit()


if __name__ == '__main__':


? ? main()




查詢索引



開啟運行時間監(jiān)測? set profiling = 1;


查看第一萬條數(shù)據(jù)ha-9999? ? select * from test_index where title = 'ha-9999';


查看執(zhí)行時間? show profiles;


為表title_index 的title 列創(chuàng)建索引? create index title_index on test_index (title(10));


執(zhí)行查詢語句? select * from test_index where title = 'ha-9999';


再次查看執(zhí)行時間 show profiles;






創(chuàng)建索引的情況

1、主鍵自動建立唯一索引


2、操作的文件使用頻繁可以作為查詢條件的字段應該創(chuàng)建索引


3、查詢中與其他表關聯(lián)的字段,外鍵關系建立索引


4、頻繁更新的字段不適合建立索引,因為每次更新不單單是更新了記錄還會更新索引


5、WHERE條件里用不到的字段不創(chuàng)建索引


6、查詢中排序的字段,排序的字段若通過索引去訪問將大大提高排序速度


7、查詢中統(tǒng)計或者分組字段




不需要創(chuàng)建索引的情況

1、表記錄太少


2、經常增刪改的表


3、如果某個數(shù)據(jù)列包含許多重復內容,為它建立索引就沒有太大的實際效果

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 索引是一種特殊的文件(innoDB數(shù)據(jù)表上的索引是表空間的一個組成部分) 數(shù)據(jù)量大經常查詢需要建立索引 索引可以加...
    斜杠先生_閱讀 133評論 0 0
  • 索引是什么 索引是一種特殊的文件(InnoDB數(shù)據(jù)表上的索引是表空間的一個組成部分),它們包含著對數(shù)據(jù)表里所有記錄...
    腿長兩米八閱讀 288評論 0 0
  • 索引 1. 思考 在圖書館中是如何找到一本書的? 一般的應用系統(tǒng)對比數(shù)據(jù)庫的讀寫比例在10:1左右(即有10次查詢...
    杜大個閱讀 340評論 0 0
  • MYSQL-索引 概述 用來加快查詢的技術很多,其中最重要的是索引。通常索引能夠快速提高查詢速度。如果不適用索引,...
    VaLee_閱讀 368評論 0 0
  • 索引的基本原理,以及數(shù)據(jù)是如何被訪問的 (一)SQLS如何訪問沒有建立索引的數(shù)據(jù)表 Heap譯成漢語叫做“堆”,其...
    安易學車閱讀 3,629評論 0 8

友情鏈接更多精彩內容