create
database
ifnot
exists new_database_name
default charset utf8 collate utf8_general_ci;
注:collate從網上搜到的結果是預設排序規則,可設定多個,本人認為不是特別有用,與charset對應就好。
create
table test (
`id`
int(10) not
null auto_increment,
`name`
varchar(20),
primary
key (`id`)
) engine=innodb default charset utf8
注:engine分為兩種=innodb和myisam,效率差不多,後者不支援事務。1.read uncommitted,顧名思義,可以讀取另乙個事務未提交資料。模擬場景,兩個視窗分別start transaction,然後其中乙個視窗操作修改其中一條資料但不提交,另乙個視窗通過查詢語句可以查詢到這條未提交的資料。這種場景也被稱之為髒讀(dirty read)
2.read committed,顧名思義,只能讀取另乙個事務已經提交的資料,未提交的資料是讀不到的。模擬場景,兩個視窗分別start transaction,然後其中乙個視窗操作修改其中一條資料但不提交,另乙個視窗通過查詢語句無法查詢到這條未提交的資料。這種場景導致不可重複讀,因為另乙個視窗事務有可能已經被提交,這樣會導致兩次查詢結果不一致。
3.repeatable read,可重複讀,mysql的預設事務級別,它確保同乙個事務的多個例項在併發讀取資料時,讀取到相同的資料。上述三種級別都會產生「幻讀」。
4.serializable,可序列化,它是最高的事務級別,通過強制事務排序,解決事務的相互衝突,從而防止「幻讀」的問題。原理是在每個讀的資料行上新增共享鎖,但這總級別會導致大量的超時或鎖競爭。
此圖摘自(
「幻讀」是指使用者讀取某一範圍資料時,另乙個事務如果新增了一條資料,當使用者再次讀取這一範圍資料時,就會出現「幻影行」
set [session | global] transaction
isolation
level
注:如果預設不註明[session | global],則預設為設定會話級,即會話結束,修改內容重置;如果想要修改全域性,需顯示增加global引數,確保推出當前會話也可以保留修改結果。
select @@[global.]tx_isolation;
注:如果不註明[global.],則預設為會話級事務設定;全域性級事務設定大於會話級,即新會話繼承全域性級事務。樂觀鎖( optimistic locking ) 相對悲觀鎖而言,樂觀鎖假設認為資料一般情況下不會造成衝突,所以在資料進行提交更新的時候,才會正式對資料的衝突與否進行檢測,如果發現衝突了,則讓返回使用者錯誤的資訊,讓使用者決定如何去做。
悲觀鎖,正如其名,它指的是對資料被外界(包括本系統當前的其他事務,以及來自外部系統的事務處理)修改持保守態度,因此,在整個資料處理過程中, 將資料處於鎖定狀態。悲觀鎖的實現,往往依靠資料庫提供的鎖機制(也只有資料庫層提供的鎖機制才能真正保證資料訪問的排他性,否則,即使在本系統中實現了 加鎖機制,也無法保證外部系統不會修改資料)。
show variables like
'character%';
比如只修改某一項,則使用命令set variable = 『value』即可,如下:
set character_set_server = 'utf8mb4';
Linux 基本概念及操作
建立檔名 進入目錄 終止當前程式 ctrl d鍵盤輸入結束或退出終端 ctrl s暫停當前程式,暫停後按下任意鍵恢復執行 ctrl z將當前程式放到後台執行,恢復到前台為命令fg ctrl a將游標移至輸入行頭,相當於home鍵 ctrl e將游標移至輸入行末,相當於end鍵 ctrl k刪除從游標...
Linux基本概念及操作
進入乙個目錄,cd是乙個命令 檢視當前所在目錄 其他快捷鍵 按鍵作用 ctrl d 鍵盤輸入結束或退出終端 ctrl s 暫停當前程式,暫停後按下任意鍵恢復執行 ctrl z 將當前程式放到後台執行,恢復到前台為命令fg ctrl a 將游標移至輸入行頭,相當於home鍵 ctrl e 將游標移至輸...
Linux基本概念及操作
1.0linux歷史 1.1基礎操作 linux登陸有兩種,一種是xwindows登陸,另一種是shell登陸。前一種登陸方式通常是用vnc,後一種通常是telnet ssh vnc 通過視窗登陸 常用基本命令 1.2 linux 檔案 在linux中所有東西都稱之為檔案,可以通過檔案許可權的第乙個...