mysql高效編程閱讀摘要--進階應用程式篇

來源:互聯網
上載者:User

MYSQL進階應用程式篇


一,交易處理及鎖定
1,mysql提供的儲存引擎(storage engine)


MyISAM 預設的高速引擎,不支援交易處理
InnoDB 支援行鎖定以及交易處理,比MyISAM處理速度稍慢
/*ISAM   MyISAM引擎的前身。mysql5.0以後不再標準安裝了
MERGE  將多個MyISAM類型的表作為一個表來處理????
MEMORY,HEAP 只在記憶體上儲存資料
Falcon 一種新的支援交易處理的引擎
ARCHIVE 將資料壓縮後儲存(只能進行insert和select操作)
CSV     以CSV形式儲存資料(應用於跨平台資料交換)*/


小技巧~~~show create table custom;  語句執行後顯示的資料雜亂無章這是可是將結尾的分號換成\G 則得到的結果會顯得有條理的多


alter table custom engine=MyISAM;修改表的儲存引擎,如果不行查看一下my.ini是否將innoDB啟用了




2,事務的處理
select * from custom ;//查看資料表中內容,有三資料
begin;
delete from custome;
select * from custome;//資料表無資料
rollback ;
select * from custom ;//資料表三資料




set autocommit=0;
select * from custome //四條資料
insert into custom values (‘T0001’,"王二",...);
select * from custom //五條資料
rollback ;//四條資料


begin;
insert into custom values (‘T0001’,"王二",...);
insert into custom values (‘T0002’,"王三",...);
savepoint sp;
insert into custom values (‘T0003’,"王四",...);
rollback to savepoint sp; //回到王三


注意:一下幾條命令,執行後江北自動認可,是在交易處理控制之外
drop database;drop table;drop;alter table;


3,多使用者資料更新中曆屆交易處理的分離水平
分離水平越高資料的整合性隨之越高,但同時運行性下降!!
交易處理的分離水平:
非提交讀取不可重複讀取幻想讀取
read uncommitted    1     1    1

read committed        0      1   1

repeatable read0      0    1

serializable              0      0    0



非提交讀取又叫髒讀~能從別的交易處理中讀取到還沒有提交的更新資料。read uncommitted水平是對其他從
交易處理中讀取動作沒有進行任何顯示的分離水平,通常不推薦!


不可重複讀取~是在某一交易處理中對同一資料進行多次讀取,但是由於其他交易處理的更新動作讀取的資料狀態
發生了改變。由於交易處理A的更新動作,使得交易處理B第一次與第二次看到的結果不同!
發生在read committed以下的分離水平,要想避免則需將分離水平提高到read committed水平。


set session transaction isolation level read committed;


幻想讀取~~在某一交易處理中對同一資料進行多次讀取時,由於其他的交易處理進行了插入/刪除的動作
產生了結果中出現了第一次讀取時不存在的資料,或者第一次讀取時有的資料消失了的現象。
要消除則將分離水平提升至serializable水平。

相關文章

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.