Python資料庫程式設計之索引

2021-10-14 08:33:40 字數 3351 閱讀 6410

二、orm方式建立資料

總結實驗目的:是為了理解index在資料庫的作用,理解index的應用場合

python的sql語句測試

請建立兩個一樣的學生表

學生表1,包含主鍵id(自增,學生id),學生姓名nane,學生成績score

學生表2,包含主鍵id(自增,學生id),學生姓名nane,學生成績score

請給學生表2的score新增index索引

關係型資料中加索引與不加索引的區別:某個字段建立索引會生成關於該字段的樹形結構

即當使用where條件是:例如:where score > 90

python的 orm方式執行測試

請用orm方式,在兩個學生表中插入同樣的資料-10萬條,姓名生成採用漢字的隨機組合方式,成績採用0-100平均分布隨機生成方式

對兩個表同時執行查詢大於95分成績的學生,測試對score建立索引會不會帶來查詢時間效率的優勢

**展示:

#python 資料庫

import pymysql

db = pymysql.connect(user=

'test'

,host=

'localhost'

, password=

'123456'

,database=

'testdb'

,charset=

'utf8'

)cursor = db.cursor(

)#建立游標 游標的每個動作會執行到資料庫裡面

sql =

"""create table student1(

id int auto_increment primary key,

name varchar(20) not null,

score int) """

cursor.execute(sql)

sql =

"""create table student2(

id int auto_increment primary key,

name varchar(20) not null,

score int) """

cursor.execute(sql)

#新增索引

sql =

"create index score_index on student2(score)"

#刪除索引

#sql = "creat index score_index on student2()"

cursor.execute(sql)

cursor.close(

)db.close(

)

結果展示:

show index from student1 //未加索引

show index from student2 //加索引

關鍵**如下(示例):

#建立類

class

student1

(base)

: __tablename__ =

'student1'

#表名-->資料庫中表student1

id= column(integer, primary_key=

true

) name = column(string)

score = column(integer,default=60)

#預設60

class

student2

(base)

: __tablename__ =

'student2'

#表名-->資料庫中表student2

id= column(integer, primary_key=

true

) name = column(string)..

....

....

....

.for i in

range

(100):

#隨機生成 兩個字的姓名 分數

name =

''.join(random.sample(

'張王天男別奧法妹大那幾年安東尼的技能但是否能單反',2

))score = random.randint(0,

100)

session.add(student1(name=name, score=score)

) session.add(student2(name=name, score=score)

)#每呼叫一次,塞入資料庫執行一次

session.commit(

)'''

由於插入資料需要消耗時間 當插入大量資料可作如下改動

if i%10 == 0

session.commit()

'''print

(i)

**如下(示例):

#sqlalchemy查詢建立也需要時間

students = session.query(student1)

.filter

(student1.score<50)

.all()

students = session.query(student1)

.filter

(student2.score<50)

.all()

#sqlalchemy真實測試的查詢

#100條資料,不見索引查詢的快

#1000條資料,建立索引查詢的快

python資料庫 索引

索引操作 定義索引是對資料庫表中一列或多列的值進行排序的一種結構,使用索引可快速訪問資料庫表中的特定信 息。加快資料檢索速度,提高查詢效率 占用資料庫物理儲存空間 當對表中資料更新時,索引需要動態維護,降低資料寫入效率 唯一索引 uni 字段值不允許重複,但可為 null,key標誌為 uni 主鍵...

python 資料庫程式設計

paramiko是基於python實現的ssh2遠端安全連線,支援認證及金鑰方式。可以實現遠端命令執行 檔案傳輸 中間ssh 等功能。paramiko包含兩個核心元件 sshclient和sftpclient 它是ssh服務會話的高階表示,該類封裝了傳輸 transport 通道 channel 及...

VC 資料庫程式設計 之一

2.將控制項繫結響應的成員變數m pset m id,m pset m name,m pset m gradyear.注 m pset是cmyset的指標,它的父類是crecordset.crecordset為記錄集類,是mfc封裝的用於處理資料庫記錄集的類。部分成員如下 movefirst mov...