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叉搜尋樹,使用鏈式的結構把每一層的節點連線在一起,葉子節點中儲存資料,非葉子節點輔助查詢.主鍵索引和其他索引的不一樣 主鍵索引葉子節點儲存一條一條的資料...