二、orm方式建立資料
總結實驗目的:是為了理解index在資料庫的作用,理解index的應用場合
python的sql語句測試
請建立兩個一樣的學生表
學生表1,包含主鍵id(自增,學生id),學生姓名nane,學生成績score
學生表2,包含主鍵id(自增,學生id),學生姓名nane,學生成績score
請給學生表2的score新增index索引
關係型資料中加索引與不加索引的區別:某個字段建立索引會生成關於該字段的樹形結構python的 orm方式執行測試即當使用where條件是:例如:where score > 90
請用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...