中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

分類信息網(wǎng)站有哪些關(guān)鍵詞優(yōu)化案例

分類信息網(wǎng)站有哪些,關(guān)鍵詞優(yōu)化案例,免費(fèi)建立平臺(tái)網(wǎng)站,wordpress 精仿36kr文章目錄 1. 概述2. 分類3. 全局鎖4. 表級(jí)鎖5. 行級(jí)鎖 1. 概述 鎖是計(jì)算機(jī)協(xié)調(diào)多個(gè)進(jìn)程或線程并發(fā)訪問某一資源的機(jī)制。在數(shù)據(jù)庫中,除傳統(tǒng)的計(jì)算資源(CPU、RAM、I/O)的爭(zhēng)用以外,數(shù)據(jù)也是一種供許多用戶共享的資源。如何保證數(shù)據(jù)并…

文章目錄

    • 1. 概述
    • 2. 分類
    • 3. 全局鎖
    • 4. 表級(jí)鎖
    • 5. 行級(jí)鎖

1. 概述

鎖是計(jì)算機(jī)協(xié)調(diào)多個(gè)進(jìn)程或線程并發(fā)訪問某一資源的機(jī)制。在數(shù)據(jù)庫中,除傳統(tǒng)的計(jì)算資源(CPU、RAM、I/O)的爭(zhēng)用以外,數(shù)據(jù)也是一種供許多用戶共享的資源。如何保證數(shù)據(jù)并發(fā)訪問的一致性、有效性是所有數(shù)據(jù)庫必須解決的一個(gè)問題,鎖沖突也是影響數(shù)據(jù)庫并發(fā)訪問性能的一個(gè)重要因素。從這個(gè)角度來說,鎖對(duì)數(shù)據(jù)庫而言顯得尤其重要,也更加復(fù)雜。

2. 分類

mysql中的鎖,按照鎖的粒度分,分為一下三類:

  1. 全局鎖:鎖定數(shù)據(jù)庫中的所有表
  2. 表級(jí)鎖:每次操作鎖住整張表
  3. 行級(jí)鎖:每次操作鎖住對(duì)應(yīng)的行數(shù)據(jù)

3. 全局鎖

全局鎖是對(duì)整個(gè)數(shù)據(jù)庫實(shí)例加鎖,加鎖后整個(gè)實(shí)例處于只讀狀態(tài),后續(xù)的DML的寫語句,DDL語句,已經(jīng)更新的事務(wù)操作提交語句都將被阻塞。其典型的應(yīng)用場(chǎng)景是做全庫的邏輯備份,對(duì)所有的表進(jìn)行鎖定,從而獲取一致性視圖,保證數(shù)據(jù)的完整性。

  • 加全局鎖
flush table with read lock;
  • 使用mysqldump工具對(duì)數(shù)據(jù)庫進(jìn)行備份
mysqldump -uroot -p1234 itcast(備份的數(shù)據(jù)庫名) > itcast.sql
  • 解鎖
unlock tables;
  • 通過全局鎖實(shí)現(xiàn)數(shù)據(jù)庫備份操作
  1. 創(chuàng)建三個(gè)終端,來模擬三個(gè)數(shù)據(jù)庫連接

在這里插入圖片描述
2. 加全局鎖

flush table with read lock;

在這里插入圖片描述
3. 執(zhí)行數(shù)據(jù)庫備份(在window命令行下)

mysqldump  -h127.0.0.1 -uroot -p123456 mysql_learn > /Users/jackchai/Desktop/Self-study-notes/test/db011.sql 

在這里插入圖片描述
4. 釋放鎖

unlock tables;

數(shù)據(jù)庫中加入全局鎖,是一個(gè)比較重的操作,存在以下問題:

  1. 如果在主庫上備份,那么在備份期間都不能執(zhí)行更新,業(yè)務(wù)基本上就得停擺
  2. 如果在主庫上備份,那么備份期間從庫不能執(zhí)行主庫同步過來的二進(jìn)制日志(binlog),會(huì)導(dǎo)致主從延遲

在innodb存儲(chǔ)引擎中,我們可以在備份時(shí)加上參數(shù)--single-transaction參數(shù)來完成不加鎖的一致性備份

mysqldump --single-transaction -uroot -p123456 itcast > itcast.sql

4. 表級(jí)鎖

表級(jí)鎖,每次操作鎖住整張表。鎖定粒度大,發(fā)生鎖沖突的概率最高,并發(fā)度最低。應(yīng)用在MyIsam、innoDB、BDB等存儲(chǔ)引擎中。對(duì)于表級(jí)鎖,主要分為三類:

  1. 表鎖
  2. 元數(shù)據(jù)鎖(meta data lock,MDL)
  3. 意向鎖
  • 表鎖

對(duì)于表鎖,分為兩類:

  1. 表共享讀鎖(read lock)
  2. 表獨(dú)占寫鎖 (write lock)

語法:

  1. 加鎖:lock tables 表名… read/write
  2. 釋放鎖:unlock tables / 客戶端斷開連接
  • 測(cè)試

一個(gè)客戶端加讀鎖,所有客戶端可讀數(shù)據(jù)庫(但不能更新數(shù)據(jù)庫)

在這里插入圖片描述

一個(gè)客戶端加表鎖,該客戶端可讀可寫,其它客戶端不能進(jìn)行任何操作

在這里插入圖片描述

讀鎖不會(huì)阻塞其他客戶端的讀,但是會(huì)阻塞寫。寫鎖既會(huì)阻塞其它客戶的讀,又會(huì)阻塞其他客戶端的寫

  • 元數(shù)據(jù)鎖(MDL)

MDL加鎖過程是系統(tǒng)自動(dòng)控制的,無需顯示使用,在訪問一張表的時(shí)候會(huì)自動(dòng)加上。MDL鎖主要作用是維護(hù)元數(shù)據(jù)(表結(jié)構(gòu))的數(shù)據(jù)一致性,在表上有活動(dòng)事務(wù)的時(shí)候,不可以對(duì)元數(shù)據(jù)進(jìn)行寫入操作。

在Mysql 5.5 中引入了MDL,當(dāng)對(duì)一張表進(jìn)行增刪改查的時(shí)候,加MDL讀鎖(共享),當(dāng)對(duì)表結(jié)構(gòu)進(jìn)行變更操作時(shí),加MDL寫鎖(排他)

對(duì)應(yīng)SQL鎖類型說明
lock tables xxx read/writeshared_read_only/shared_no_read_write
select、select…lock in share modeshared_read與shared_read、shared_write兼容,與Exclusive互斥
insert、update、delete、select…for updateshared_write與shared_read、shared_write兼容,與Exclusive互斥
alter table…exclusive與其他的MDL互斥
  • 案例

一個(gè)數(shù)據(jù)庫連接加上shared_read鎖或shared_write和其他連接是共享的

在這里插入圖片描述

一個(gè)連接加上shared_read/shared_write時(shí)另一個(gè)連接不能加上exclusive鎖

在這里插入圖片描述
查看元數(shù)據(jù)鎖

select object_type, object_schema,object_name,lock_type,lock_duration from performance_schema.metadata_locks

在這里插入圖片描述

  • 意向鎖

為了避免DML在執(zhí)行時(shí),加的行鎖與表鎖沖突,在innoDB引入了意向鎖,使用表鎖不用檢查每行數(shù)據(jù)是否加鎖,使用意向鎖來減少表鎖的檢查。(加入行鎖的時(shí)候會(huì)給表加個(gè)意向鎖,加表鎖的時(shí)候會(huì)判斷意向鎖和表鎖是否兼容來決定是否加表鎖)

意向共享鎖(IS):由語句select…lock in share mode添加
意向排他鎖(IX):由insert、update、delete、select… for update添加。

通過以下sql,查看意向鎖及行鎖的加鎖情況

select object_schema,object_name,index_name,lock_type,lock_mode,lock_data from performance_schema.data_locks;
  • 案例

加IS鎖

在這里插入圖片描述

加IX鎖

在這里插入圖片描述

5. 行級(jí)鎖

行級(jí)鎖,每次操作鎖住對(duì)應(yīng)的數(shù)據(jù)行。鎖定粒度最小,發(fā)生沖突的概率最低,并發(fā)度最高。應(yīng)用在innoDB存儲(chǔ)引擎中。InnoDB的數(shù)據(jù)時(shí)基于索引組織的,行鎖時(shí)通過對(duì)索引上的索引項(xiàng)來實(shí)現(xiàn)的,而不是對(duì)記錄加的鎖。對(duì)于行級(jí)鎖,主要分為以下三類:

  1. 行鎖(Record Lock):鎖定單個(gè)記錄的鎖,防止其他事務(wù)對(duì)此進(jìn)行update和delete。在RC、RR隔離級(jí)別下支持。
  2. 間隙鎖(Gap Lock):鎖定索引記錄間隙(不含該記錄),確保索引記錄間隙不變,防止其他事務(wù)在這個(gè)間隙進(jìn)行insert,產(chǎn)生幻讀。在RR隔離級(jí)別下支持。
  3. 臨鍵鎖(Next-key Lock):行鎖和間隙鎖的組合,同時(shí)鎖住數(shù)據(jù),并鎖住數(shù)據(jù)前面的間隙GAP。在RR隔離級(jí)別下支持。
  • 行鎖

innoDB存儲(chǔ)引擎實(shí)現(xiàn)了一下兩種類型的行鎖:

  1. 共享鎖(S):允許一個(gè)事務(wù)去讀一行,阻止其他事務(wù)獲得相同數(shù)據(jù)集的排他鎖。
  2. 排他鎖(X):允許獲取排他鎖的事務(wù)更新數(shù)據(jù),阻止其他事務(wù)獲得相同數(shù)據(jù)集的共享鎖和排他鎖。
SQL行鎖類型說明
insert排他鎖自動(dòng)加鎖
update排他鎖自動(dòng)加鎖
delete排他鎖自動(dòng)加鎖
select不加任何鎖
select lock in share mode共享鎖需要手動(dòng)在select之后加lock in share mode
select for update排他鎖需要手動(dòng)在select之后加for update

默認(rèn)情況下,innoDB在Repeatable read 事務(wù)隔離級(jí)別運(yùn)行,innoDB使用next-key鎖進(jìn)行搜索和索引掃描,以防止幻讀

  1. 針對(duì)唯一索引進(jìn)行檢索時(shí),對(duì)已存在的記錄進(jìn)行等值匹配時(shí),將會(huì)自動(dòng)優(yōu)化為行鎖
  2. innoDB的行鎖時(shí)針對(duì)索引加的鎖,不通過索引條件檢索數(shù)據(jù),那么innoDB將對(duì)表中的所有記錄加鎖,此時(shí)就會(huì)升級(jí)為表鎖

通過一下SQL,查看意向鎖及行鎖的加鎖情況

select object_schema,object_name,index_name,lock_type,lock_mode,lock_data from performance_schema.data_locks;
  • 間隙鎖/臨鍵鎖

默認(rèn)情況下,innoDB在Repeatable raed事務(wù)隔離級(jí)別,InnoDB使用next-key鎖進(jìn)行搜索和索引掃描,以防止幻讀

  1. 索引上的等值查詢(唯一索引),給不存在的記錄加鎖時(shí),優(yōu)化為間隙鎖
  2. 索引上的等值查詢(普通索引),向右遍歷時(shí)最后一個(gè)值不滿足查詢需求時(shí),next-key lock退化為間隙鎖
  3. 索引上的范圍查詢(唯一索引,會(huì)訪問到不滿足條件的第一個(gè)值為止

注意:間隙鎖唯一的目的是防止其他事務(wù)插入間隙,間隙鎖可以共存,一個(gè)事務(wù)采用的間隙鎖不回阻止另一個(gè)事務(wù)在同一個(gè)間隙上采用間隙鎖

http://www.risenshineclean.com/news/31051.html

相關(guān)文章:

  • wordpress主題一鍵生成云南網(wǎng)站建設(shè)快速優(yōu)化
  • 建設(shè)商業(yè)門戶網(wǎng)站的重要適合獎(jiǎng)勵(lì)自己的網(wǎng)站免費(fèi)
  • 劍網(wǎng)三魁首怎么做網(wǎng)站在線建站平臺(tái)
  • wordpress手機(jī)中文版seo優(yōu)化是什么職業(yè)
  • 濟(jì)南網(wǎng)站制作價(jià)格吸引顧客的營銷策略
  • 源碼開發(fā)網(wǎng)站建設(shè)市場(chǎng)營銷四大分析方法
  • 網(wǎng)站水印怎么做的推廣網(wǎng)頁
  • 帶dede后臺(tái)的整套網(wǎng)站源碼怎么本地測(cè)試安裝上海短視頻培訓(xùn)機(jī)構(gòu)
  • 小說網(wǎng)站建設(shè)箋池齋上海百度推廣官方電話
  • 啤酒免費(fèi)代理0元鋪貨優(yōu)化軟件有哪些
  • 網(wǎng)站策劃包括什么國內(nèi)免費(fèi)b2b網(wǎng)站大全
  • 網(wǎng)站建設(shè)死人接單關(guān)鍵詞查找工具
  • 網(wǎng)站做xss過濾seo快速排名軟件平臺(tái)
  • 做網(wǎng)站很累官方網(wǎng)站怎么注冊(cè)
  • wordpress搭建影視站百度引擎提交入口
  • 揚(yáng)州廣陵區(qū)城鄉(xiāng)建設(shè)局網(wǎng)站怎么快速刷排名
  • 做網(wǎng)站必須有云虛擬主機(jī)上海app定制開發(fā)公司
  • 濟(jì)南做網(wǎng)站互聯(lián)網(wǎng)公司有哪些百度搜索網(wǎng)址大全
  • 沈陽網(wǎng)站制作定制廠家站內(nèi)營銷推廣方式
  • 網(wǎng)站基礎(chǔ)知識(shí)域名5個(gè)點(diǎn)突發(fā)大事震驚全國
  • 35互聯(lián)做的網(wǎng)站房產(chǎn)網(wǎng)站建設(shè)
  • 做淘寶保健品藥品在哪個(gè)網(wǎng)站找素材想做推廣哪個(gè)平臺(tái)好
  • 合肥哪個(gè)公司做網(wǎng)站好廣告推廣怎么做最有效
  • 豬八戒做網(wǎng)站靠譜嗎seo建站
  • 短期網(wǎng)站建設(shè)培訓(xùn)百度sem是什么意思
  • 彩妝網(wǎng)站建設(shè)標(biāo)題優(yōu)化怎樣選關(guān)鍵詞
  • 基于jsp的精品課程網(wǎng)站建設(shè)泉州關(guān)鍵詞優(yōu)化排名
  • 本地怎樣上傳自己做的網(wǎng)站seo優(yōu)化價(jià)格
  • 沭陽做網(wǎng)站營銷比較好的知名公司有哪些
  • 城鄉(xiāng)建設(shè)網(wǎng)站證件查詢谷歌外貿(mào)seo