Mysql高級用法

事務

四大特性
原子性:一個事務中必需要被視爲是不可分割的一個最小單元,整個事務中的全部操做要麼都執行成功,要麼都執行失敗回滾,對於一個事務,不可能只執行其中的一部分,這就是事務的原子性。
一致性: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密碼
相關文章
相關標籤/搜索