MySql資料庫-58沈劍 架構師之路
最近在看 “58沈劍 架構師之路”的公眾號,寫的非常簡練,乾貨很多。但裡面也充斥了很多廣告和管理類的文章,本文主要是對裡面的資料庫文章做一個彙總:
相關推薦
MySql資料庫-58沈劍 架構師之路
最近在看 “58沈劍 架構師之路”的公眾號,寫的非常簡練,乾貨很多。但裡面也充斥了很多廣告和管理類的文章,本文主要是對裡面的資料庫文章做一個彙總: InnoDB,5項最佳實踐,知其所以然? InnoDB行鎖,如何鎖住一條不存在的記錄? InnoDB併發如此高,原因竟然在這? Inno
【58沈劍 架構師之路】資料庫索引,到底是什麼做的?
問題1. 資料庫為什麼要設計索引? 圖書館存了1000W本圖書,要從中找到《架構師之路》,一本本查,要查到什麼時候去? 於是,圖書管理員設計了一套規則: (1)一樓放歷史類,二樓放文學類,三樓放IT類… (2)IT類,又分軟體類,硬體類… (3)軟體類,又按照書名音序排序… 以便快
【58沈劍 架構師之路】資料庫索引,到底是什麼做的?
問題1. 資料庫為什麼要設計索引? 圖書館存了1000W本圖書,要從中找到《架構師之路》,一本本查,要查到什麼時候去? 於是,圖書管理員設計了一套規則: (1)一樓放歷史類,二樓放文學類,三樓放IT類… (2)IT類,又分軟體類,硬體類… (3)軟體類,又按照書
【 58沈劍 架構師之路】究竟啥才是網際網路架構“高併發”
一、什麼是高併發 高併發(High Concurrency)是網際網路分散式系統架構設計中必須考慮的因素之一,它通常是指,通過設計保證系統能夠同時並行處理很多請求。 高併發相關常用的一些指標有響應時間(Response Time),吞吐量(Throughput),每秒查詢率QPS(Quer
【 58沈劍 架構師之路】究竟啥才是網際網路架構“高併發”
一、什麼是高併發 高併發(High Concurrency)是網際網路分散式系統架構設計中必須考慮的因素之一,它通常是指,通過設計保證系統能夠同時並行處理很多請求。 高併發相關常用的一些指標有響應時間(Response Time),吞吐量(Throughput),每秒查詢率
【 58沈劍 架構師之路】TCP接入層的負載均衡、高可用、擴充套件性架構
一、web-server的負載均衡 網際網路架構中,web-server接入一般使用nginx來做反向代理,實施負載均衡。整個架構分三層: 上游呼叫層,一般是browser或者APP 中間反向代理層,nginx 下游真實接入叢集,web-server,常見web-server的
【58沈劍 架構師之路】InnoDB,快照讀,在RR和RC下有何差異?
快照讀(Snapshot Read) MySQL資料庫,InnoDB儲存引擎,為了提高併發,使用MVCC機制,在併發事務時,通過讀取資料行的歷史資料版本,不加鎖,來提高併發的一種不加鎖一致性讀(Consistent Nonlocking Read)。 讀提交(Read Committed)
【 58沈劍 架構師之路】InnoDB七種鎖——記錄鎖、間隙鎖、臨鍵鎖
MySQL的InnoDB的細粒度行鎖,是它最吸引人的特性之一。 但是,如《InnoDB,5項最佳實踐》所述,如果查詢沒有命中索引,也將退化為表鎖。 InnoDB的細粒度鎖,是實現在索引記錄上的。 一,InnoDB的索引 InnoDB的索引有兩類索引,聚集
【 58沈劍 架構師之路】InnoDB七種鎖——共享/排它鎖、意向鎖、插入意向鎖
今天,將要介紹InnoDB另外三種:共享/排他鎖,意向鎖,插入意向鎖。 一,共享/排它鎖(Shared and Exclusive Locks) 《InnoDB併發為何這麼高?》一文介紹了通用的共享/排它鎖,在InnoDB裡當然也實現了標準的行級鎖(row-level locking),共
【 58沈劍 架構師之路】InnoDB七種鎖——自增鎖(Auto-inc Locks)
一,案例說明 MySQL,InnoDB,預設的隔離級別(RR),假設有資料表: t(id AUTO_INCREMENT, name); 資料表中有資料: 1, shenjian 2, zhangsan 3, lisi 事務A先執行,還未提交: inse
【58沈劍 架構師之路】InnoDB併發如此高,原因竟然在這?
一、併發控制 為啥要進行併發控制? 併發的任務對同一個臨界資源進行操作,如果不採取措施,可能導致不一致,故必須進行併發控制(Concurrency Control)。 技術上,通常如何進行併發控制? 通過併發控制保證資料一致性的常見手段有: 鎖(Locking) 資料
【 58沈劍 架構師之路】InnoDB七種鎖——自增鎖(Auto-inc Locks)
一,案例說明 MySQL,InnoDB,預設的隔離級別(RR),假設有資料表: t(id AUTO_INCREMENT, name); 資料表中有資料: 1, shenjian 2, zhangsan 3, lisi 事務A先
【58沈劍 架構師之路】InnoDB,快照讀,在RR和RC下有何差異?
快照讀(Snapshot Read) MySQL資料庫,InnoDB儲存引擎,為了提高併發,使用MVCC機制,在併發事務時,通過讀取資料行的歷史資料版本,不加鎖,來提高併發的一種不加鎖一致性讀(Consistent Nonlocking Read)。 讀提交(Read Co
【58沈劍 架構師之路】InnoDB併發如此高,原因竟然在這?
一、併發控制 為啥要進行併發控制? 併發的任務對同一個臨界資源進行操作,如果不採取措施,可能導致不一致,故必須進行併發控制(Concurrency Control)。 技術上,通常如何進行併發控制? 通過併發控制保證資料一致性的常見手段有: 鎖(Loc
【58沈劍 架構師之路】1分鐘瞭解MyISAM與InnoDB的索引差異
《資料庫索引,到底是什麼做的?》介紹了B+樹,它是一種非常適合用來做資料庫索引的資料結構: (1)很適合磁碟儲存,能夠充分利用區域性性原理,磁碟預讀; (2)很低的樹高度,能夠儲存大量資料; (3)索引本身佔用的記憶體很小; (4)能夠很好的支援單點查詢,範圍查詢,有序性查詢; 資料
【 58沈劍 架構師之路】4種事務的隔離級別,InnoDB如何巧妙實現?
事務ACID特性,其中I代表隔離性(Isolation)。 什麼是事務的隔離性? 隔離性是指,多個使用者的併發事務訪問同一個資料庫時,一個使用者的事務不應該被其他使用者的事務干擾,多個併發事務之間要相互隔離。 一個事務怎麼會干擾其他事務呢? 咱們舉例子來說明,假設有In
【58沈劍 架構師之路】InnoDB,select為啥會阻塞insert?
MySQL的InnoDB的細粒度行鎖,是它最吸引人的特性之一。 但是,如《InnoDB,5項最佳實踐》所述,如果查詢沒有命中索引,也將退化為表鎖。 InnoDB的細粒度鎖,是實現在索引記錄上的。 一,InnoDB的索引 InnoDB的索引有兩類索引,聚集索引(Clustered Ind
【58沈劍 架構師之路】InnoDB,select為啥會阻塞insert?
MySQL的InnoDB的細粒度行鎖,是它最吸引人的特性之一。 但是,如《InnoDB,5項最佳實踐》所述,如果查詢沒有命中索引,也將退化為表鎖。 InnoDB的細粒度鎖,是實現在索引記錄上的。 一,InnoDB的索引 InnoDB的索引有兩類索引,聚集索引(Clu
【 58沈劍 架構師之路】4種事務的隔離級別,InnoDB如何巧妙實現?
事務ACID特性,其中I代表隔離性(Isolation)。 什麼是事務的隔離性? 隔離性是指,多個使用者的併發事務訪問同一個資料庫時,一個使用者的事務不應該被其他使用者的事務干擾,多個併發事務之間要相互隔離。 一個事務怎麼會干擾其他事務呢? 咱們舉
【58沈劍 架構師之路】1分鐘瞭解MyISAM與InnoDB的索引差異
《資料庫索引,到底是什麼做的?》介紹了B+樹,它是一種非常適合用來做資料庫索引的資料結構: (1)很適合磁碟儲存,能夠充分利用區域性性原理,磁碟預讀; (2)很低的樹高度,能夠儲存大量資料; (3)索引本身佔用的記憶體很小; (4)能夠很好的支援單點查詢,範圍查詢,有序性查詢;