在鎖讀的過程中,乙個update 或乙個delete 經常設定記錄鎖在每乙個索引記錄上。這與where條件中是否排除此條索引記錄沒有關係。innodb認不出擴充套件的where擴充套件條件,只會認出那些索引區間被掃瞄。the locks are normally
next-key locks
that also block inserts into the
「gap」
immediately before the record。通常,gap locking不能顯示使用,導致next-key locking 也不能用。大多數情況下,事務隔離級別也會影響lock的設定。
如果乙個二級索引在查詢記錄過程中使用,那麼索引記錄被設定x-lock。如果沒有滿足的索引,那麼將是全表掃瞄,表中每一條記錄都會比鎖定。併發降低,效率下降,建立好的索引會掃瞄不必要的記錄。
select ..... for update or select .... lock in share mode 下,掃瞄記錄 請求locks。
innodb 設定的特定鎖型別
select ......from 鎖定讀,讀取資料庫快照而不用設定locks。在serializable level,在索引記錄將設定 next-key locks
select .... from ...lock in share mode 在全部的索引記錄上設定乙個共享的next-key locks,只有掃瞄是唯一索引時設定record lock。
select.... from .... for update 在全部的索引記錄上設定乙個排他的next-key locks,只有掃瞄是唯一索引時設定索引記錄鎖。
update.....where ....設定排他的next-key lock。但是只有掃瞄唯一索引記錄時設定索引記錄鎖
delete......where.... 設定排他的next-key lock。但是只有掃瞄唯一索引記錄時設定索引記錄鎖
UILable設定不同顏色不同字型
在專案開發中,我們經常會遇到在這樣一種情形 在乙個uilabel 使用不同的顏色或不同的字型來體現字串,在ios 6 以後我們可以很輕鬆的實現這一點,官方的api 為我們提供了uilabel類的attributedtext,使用不同顏色和不同字型的字串,我們可以使用nsattributedtext ...
tabBar選擇不同item設定標題不同顏色
在開發中常常遇到帶tabbar的應用,這些應用一般都是只有乙個選中顏色,但在開發中也會遇到選擇不同item選中顏色不一致的情況,這時要如何解決呢?方法一 不設定item title 全讓ui切成,這時只要我們設定不同的即可。方法二 再點選item的 方法中設定不同的tintcolor。void ta...
myisam和innodb索引實現的不同
myisam引擎使用b tree作為索引結構,葉節點的data域存放的是資料記錄的位址。下圖是myisam索引的原理圖 這裡設表一共有三列,假設我們以col1為主鍵,則上圖是乙個myisam表的主索引 primary key 示意。可以看出myisam的索引檔案僅僅儲存資料記錄的位址。在myisam...