四大特性
原子性:一個事務中必需要被視爲是不可分割的一個最小單元,整個事務中的全部操做要麼都執行成功,要麼都執行失敗回滾,對於一個事務,不可能只執行其中的一部分,這就是事務的原子性。
一致性:mysql數據庫老是從一個一致性的狀態到達另外一個一致性的狀態。好比在執行轉帳操做時,轉帳前兩我的的總和的狀態和轉帳後兩我的的總和的狀態是一致的。
隔離性:對於一個事務來講,在最終提交前,對其餘的事務是不可見的。
持久性:一旦提交事務,則其所作的修改會永遠的保存到數據庫。即便系統崩潰,修改的數據也不會丟失
事務命令
查看錶的建立語句,能夠看到engine=innodb
use t1
show create table score
開啓事務
begin
或者
start transaction
提交事務
commit
回滾事務
rollback
#注意:修改數據的命令會自動的觸發事務,好比delete,update,insert
其實,primary_key就是索引,在新建表結構時規定parmary_key便可。若是要增長索引,那麼請看下邊: 增長索引 ALTER TABLE `student` ADD IDNEX aaa(`class_id`) #添加普通索引 刪除全部 drop index aaa on student
# 往數據庫增長100000條數據 from pymysql import connect def main(): conn=connect(host='localhost',port=3306,user='root',password='',database='t1',use_unicode=True) cursor=conn.cursor() for i in range(100000): cursor.execute("insert into test_index value('ha-%d')"%i) conn.commit() if __name__ == '__main__': main()
# linux下執行操做
use t1 set profiling=1 #開啓時間檢測
select * from test_index where title='ha-99999'
show profiles; #查詢結果爲0.28s
create index title_index on test_index(title(10)); #爲表test_index的字段title增長索引
select * from test_index where title='ha-99999'
show profiles; #查詢結果爲0.07s
# 增長用戶權限
增長一個用戶,只能夠訪問t1表中的 「查」功能 mysql -u root -p #登陸root用戶 use mysql #mysql中的user表是數據庫的權限設置 select host,user from user #查看全部用戶的權限
grant select,insert on t1.* to laowang@localhost identified by '123456' #建立laowang用戶密碼爲123456
quit
mysql -u laowang -p #登陸laowang用戶
123456 #輸入密碼
select * from class #成功
insert into class(caption) values('九年級三班') #成功
update class set name='三年級二班' where caption=‘三年二班’ #失敗
# 刪除用戶及權限
drop user laowang@localhost #刪除laowang這個用戶及權限
select host,user from user #查看,沒有了老王用戶
#配置主從同步步驟: 1.在主服務器上,必須開啓二進制日誌機制和配置一個獨立的ID 2.在每個從服務器上,配置一個惟一的ID,建立一個用來專門複製主服務器數據的帳號 3.在開始複製進程前,在主服務器上記錄二進制文件的位置信息 4.若是在開始複製以前,數據庫中已經有數據,就必須先建立一個數據快照(能夠使用mysqldump導出數據庫,或者直接複製數據文件) 5.配置從服務器要鏈接的主服務器的IP地址和登錄受權,二進制日誌文件名和位置 #簡而言之版步驟: #主服務器爲ubantu,從爲windows 1.備份主服務器數據到從服務器; #首先進行數據庫備份,再在從服務器上進行還原數據庫 2.給主服務器設置一個id值; 3.給從服務器設置id值; 4.設置主服務器的日誌文件 5.設置從服務器從哪裏讀取日誌文件
連接:22世紀人工智能/數據庫/課件/Python高級-所有(html版)/19day/主從.html
備份 mysqldump -uroot -p 數據庫名稱> python.sql #按提示輸入mysql密碼 恢復 鏈接mysql,建立新的數據庫 退出鏈接,執行以下命令 mysql -uroot -p 新數據庫名稱 python.sql #按提示輸入mysql密碼