mysql學習筆記

來源:互聯網
上載者:User

標籤:io   ar   使用   sp   for   檔案   資料   on   art   

1. MySQL預設採用的是自動認可的方式,也就是AUTOCOMMIT模式,也就是說如果不是顯式的開啟一個事務,則每個事務都被當做是一個事務去提交操作。

show variables like ‘autocommit’來查看當前的提交狀態,可以使用 set autocommit=1/0來改變,1表示開啟自動認可,0表示禁用,當為0時所有的查詢都在一個事務之中,直到顯式的提交commit或者是rollback復原。但是這個修改對於非事務型的表,比如 myisam是無效的,它將處於autocommit狀態。

另外需要注意的是,會有一些命令強制執行commit來提交當前事務,在資料定義語言 (Data Definition Language)DDL中,如果是會導致大量資料改變的操作,比如alter table,lock table 等就是如此。

可以通過set transaction isolation level 命令來設定隔離等級,新的隔離等級在下一個事務生效,可以在設定檔中設定整個資料庫的隔離等級。也可以只改變當前會話的隔離等級:MySQL>set session transaction isolation level read commited.

2. 需要注意的是不應該在事務中混合使用儲存引擎,因為這樣在某些復原中,只有支援事務的儲存引擎的資料表可以被復原,而非事務型的表上的變更則無法撤銷。

3. InnoDB採用兩階段鎖定協議,在事務執行隨時都可以執行鎖定,鎖只有在執行commit或者rollback的時候才會釋放,而且是在同一時刻釋放。

4. 建議除了事務中禁用了autocommit,可以使用lock tables之外,其他時候都不要顯式的執行lock tables ,不管使用的是什麼引擎。

5. show table status 命令查看標的相關資訊: show table status like ‘user‘ \G ,使用\G得到的是格式化的輸出。row_format表示行的格式,rows表示行數,在InnoDB裡面是估計值,avg_row_length表示平均每行包含的位元組數,data_length表資料的大小,max_data_length表資料的最大容量和儲存引擎有關,index_length表示索引的大小,data_free表示可以被應用的空間大小,auto_increament下一個自動增加的值,create_time表建立的時間,check_time最後一次檢查表的時間,collation表的預設字元集和字元定序,checksum如果啟動,儲存的是整個表的即時校正和,creat_options建立表時指定的其他選項,comment儲存的一些額外的資訊。

 6. 改變引擎的方法:alter table mytable ENGINE=InnoDB,轉變的過程中將會失去原有引擎的特性,使用建立和查詢的方式有時是一種比較好的選擇:

crate table innodb_table like myisam_table;

alter table innodb_table engine=innodb

insert into innodb_table select * from myisam_table;

如果資料較大就要採用分塊比如:

start transaction;

insert into innodb_table select * from myisam_table 

where id between x and y ;

commit;

如果有必要刻意在執行的過程中對原表加鎖,確保新表和原表的資料一致,這個

Percona Toolkit 提供了一個 pt-online-schema-change的工具

7. 

 

mysql學習筆記

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.