查詢資料庫的屬性、包括引擎
show table status from we7;
查詢資料庫的表引擎
show engines;
插入一百萬條資料的對比:
innodb,每秒插入1000條資料左右沒有時候會在600,一共15分鐘
myisam,每秒能插入16萬資料,一共用了27秒
mysql和myisam表都能支援表級鎖
表級鎖
//如果是讀級別鎖 在當前會話事務未提交的時候,其他會話可讀不可寫
lock table user_balance read;(讀級別)
//如果是寫級別鎖 在當前會員事務未提交的時候,其他會話不可讀也不可寫
lock table user_balance write;(寫級別)
行級鎖只能innodb支援,也是mysql中的最小粒度梭們也是真正的事務鎖。
行級鎖
行級鎖分為共享鎖和排它鎖。
共享鎖 lock in share mode
select xx lock in share mode
這樣就開啟了共享鎖,凡是select取出來的行資料 只有該回話才可以修改,直到commit過後,其他的會話才能修改,但是過程當中其他會話可以讀。
start transaction;
select * from user_balance where user_id=3 lock in share mode;
commit;
update user_balance set user_money = 10 where user_id=3;
行鎖是索引級別的,不是記錄級別的。(上面兩條命令執行,如果user_id並非索引,那麼該鎖會自動轉換為表級別鎖)
導致:
update user_balance set user_money = 10 where user_id=4;
也無法執行。
start transaction;
//id為索引,正確鎖住 實現行級鎖索引級別
select * from user_balance where id=3 lock in share mode;
commit;
//依然不能修改 因為user_id不是索引
update user_balance set user_money = 10 where user_id=3;
//可以修改 因為id是索引
update user_balance set user_money = 10 where id=3;
排他鎖 for update
開啟了排他鎖,其他會話依然不能改資料,但是可以普通的的讀。如果另外乙個會話也想加鎖則會產生衝突。
start transaction;
//id為索引,正確鎖住 實現行級鎖索引級別
select * from user_balance where id=27 for update;
commit;
//可以正常查詢
select * from user_balance where id=27;
//不能執行 因為被鎖了
update user_balance set user_money = 100 where id=27;
排它鎖是在給加鎖的記錄再次加鎖的時候,就會出問題
//讀都讀不出來,需要上乙個鎖事務提交以後 才可以再次加鎖
select * from user_balance where id=27 for update;
移動端web開發的小筆記
移動端的開發跟pc端的開發還是稍有區別的,以下內容是個人移動開發的經驗,後期會不定時更新錯誤以及新的內容 一 從meta標籤說起 首先,在移動端,我們希望將頁面視窗自動調整到裝置寬度,需要的meta標籤是這樣 name viewport content width device width,init...
Web小練習 簡單的二級聯動
乙個簡單的二級聯動習題 如下 lang en charset utf 8 demo2title window.onload function 選擇省份後,城市列表框聯動 provinces.onchange function var secondcitiesarr citiesarr index s...
web相容學習分析筆記 塊級 內聯 內聯塊級元素
一 塊級 內聯 內聯塊級元素 1 塊級元素 block 獨佔一行 可設定width,height,margin,padding 內部可包含塊級或內聯元素 3 內聯 行內 元素 inline 和其他inline元素同行顯示 可以設定margin left,margin righ,padding lef...