python mysql 事務 索引

2021-09-26 05:53:35 字數 2014 閱讀 4812

1事務的四大特性(acid):原子性+一致性+隔離性+永續性(銀行轉賬例子)

原子性:每乙個事務都是乙個不可分割的最小單元;

一致性:乙個事務從乙個一致性狀態轉換成另乙個一致性狀態;

隔離性:乙個事務所做的修改另乙個事務是看不見的。

永久性:一旦乙個事務commit提交了資料,資料將永久儲存。

2.**事務過程**:

1)開啟事務:start transaction; 或者begin;

2) 執行事務: select * from …

update 表名 …set…

3)提交:commit;

事務mysql中預設所有的操作都是乙個事務。增刪改中使用,查不需要。以張三給李四轉600元為例。

#!/usr/bin/python

# -*- coding: utf-8 -*-

import mysqldb

#包的匯入

db = mysqldb.connect(

"ip位址,本機為localhost","使用者名稱"

,"密碼"

,"表名"

)#開啟資料庫的連線

cursor = db.cursor(

)#使用cursor()方法獲得操作游標

try:

# 執行sql語句

cursor.execute(

"update account set money=money-600 where name='zhangsan'"

) cursor.execute(

"update account set money=money+600 where name='lisi'"

)# 提交到資料庫執行

db.commit(

)except

:# 發生錯誤時回滾 回滾到獲取游標的位置開始重新執行 看**上面的文字有說明

db.rollback(

)db.close(

)#關閉資料庫的連線

索引的目的:提高查詢效率

索引的使用

1.建立索引表

create index 索引名 on 表名(欄位名稱(約束長度));

2.刪除suoyin

drop index 索引名 on表名;

3. 檢視索引

show index from 表名;

4.檢視執行時間

show profiles;

注意:建立太多的索引將會影響更新和插入的速度,因為它需要同樣更新每個索引檔案,對於乙個經常需要更新和插入的**,就沒有必要為乙個很少使用where 自居單獨建立索引,建立索引會占用磁碟空間

索引demo

create table test_index(title varchar(10)

)from pymysql import connect

defmain()

:#建立連線

conn = connect(host=

'127.0.0.1'

,port=

3306

,database=

'jing_dong'

,user=

'root'

,password=

'mysql');

# 建立游標

cursor =conn.cursor();

for i in

range

100000

:# 插入資料100000條

cursor.execute(

"inset into text_index values('ha-%d')"

% i)

# 提交資料

conn.commit(

)if __name_ ==

"__main__"

: main(

)

Python Mysql 事務 索引

事務就是使用者定義的一系列執行sql語句的操作,這些操作要麼完全地執行,要麼完全地都不執行,它是乙個不可分割的工作執行單元。事務的使用場景 在日常生活中,有時我們需要進行銀行轉賬,這個銀行轉賬操作背後就是需要執行多個sql語句,假如這些sql執行到一半突然停電了,那麼就會導致這個功能只完成了一半,這...

Python MySQL(索引的使用補充)

索引 作用 索引普通索引 加速查詢 主鍵索引 加速查詢 不能為空 不能重複 唯一索引 加速查詢 不能重複 聯合索引 聯合唯一索引 聯合主鍵索引 多列聯合起來作為主鍵索引 聯合唯一索引 多列聯合起來作為唯一索引 聯合普通索引 加速查詢 索引就像乙個目錄一樣,如果沒有目錄就要從頭到尾看一遍 無索引 從前...

mysql索引和事務 MySql索引和事務

mysqlde 索引 目的 是為了加快查詢的速度,避免順序查詢,但是拖慢了插入和刪除的速度.應用在在經常查詢,很少少出插入的場景中.結構 b 樹,n叉搜尋樹,使用鏈式的結構把每一層的節點連線在一起,葉子節點中儲存資料,非葉子節點輔助查詢.主鍵索引和其他索引的不一樣 主鍵索引葉子節點儲存一條一條的資料...