索引就是鍵 -keypython
1)鍵 是添加給數據庫表的 字段 的 2)給表建立 鍵 後,該表不只會形參 表結構、表數據,還有 鍵的B+結構圖 3)鍵的結構圖是須要維護的,在數據完成增、刪、改操做時,只要影響到有鍵的字段,結構圖都要維護一次 因此建立鍵後必定會下降 增、刪、改 的效率 4)鍵能夠極大的加快查詢速度(開發需求中,幾乎業務都和查有關係) 5)創建鍵的方式:主鍵、外鍵、惟一鍵、index
import pymysql from pymysql.cursors import DictCursor 1.建立數據庫鏈接對象 conn = pymysql.connect(user='root', passwd='root', db='oldboy') cursor = conn.cursor(DictCursor) 2.先建立兩張表無索引的a1 sql1 = """create table a1( id int primary key auto_increment, x int, y int )""" cursor.execute(sql1) # 創建有索引的a2 sql2 = """create table a2( id int primary key auto_increment, x int, y int, index(x) )""" cursor.execute(sql2) 3.每一個表插入5000條數據 import random for i in range(1, 5001): x = i y = random.randint(1, 5000) cursor.execute('insert into a1(x, y) values(%s, %s)', (x, y)) cursor.execute('insert into a2(x, y) values(%s, %s)', (x, y)) conn.commit() 4.查詢a1的id爲4975的記錄所用的時間 import time b_time = time.time() sql = 'select * from a1 where id=4975' cursor.execute(sql) e_time = time.time() print(e_time - b_time) # 結果:0.0010142326354980469 5.查詢a1的x爲4975的記錄所用的時間 b_time = time.time() sql = 'select * from a1 where x=4975' cursor.execute(sql) e_time = time.time() print(e_time - b_time) #結果:0.0019969940185546875 6.查詢a2的id爲4975的記錄所用的時間 b_time = time.time() sql = 'select * from a2 where x=4975' cursor.execute(sql) e_time = time.time() print(e_time - b_time) #結果:0.0009992122650146484
重點:從以上的a1和a2表的數據查詢速度來看,很明顯a2表中有索引的x字段的數據查詢的速度比較快。這就是鍵(索引)能夠極大的加快查詢速度mysql