web級mysql 小筆記

2021-08-07 19:54:15 字數 1833 閱讀 7280

查詢資料庫的屬性、包括引擎

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...