資料庫必看 WYL篇

2021-10-04 04:07:59 字數 1077 閱讀 9353

一.mysql最常用資料庫

想到mysql,就需要怎麼解決資料庫高併發問題。

1.使用索引

2.使用快取

3.使用集群

4.分庫分表

分類:btree索引和雜湊索引

雜湊索引我們比較常用,它在絕大多數使用在為單條記錄查詢(查詢效能快),其餘 就是選擇btree索引。

redis 專案 使用:資料字典

資料型別:list spring hash set zset

雪崩:大量資料堆積給資料庫(錯開快取時間)

擊穿:因為快取沒有資料就增加了資料庫壓力(設定乙個沒有用的值)

反向**負載均衡(nginx)

ip層負載均衡

資料鏈路層負載均衡

分庫:優點資料庫拆分比較簡單,尤其適合沒有跨庫查詢
mysql的儲存引擎

myismq innodb

關係性資料庫acid規則

1.原子性:要麼完成要麼不完成。

2.一致性:執行事務前後,資料保持一致。

3.隔離性:各幹各的,互不干擾。

4.永續性:資料庫的資料是持久的,出現了故障也不影響資料的改變。

1.髒讀:乙個事務讀取了另乙個事事務未提交的事務

2.不可重複讀:在一次事務範圍內,讀取同一資料產生了不同的值。

3.虛讀:讀取整體的資料後。因為其他事務對資料的更新,再次查詢結果不同。

myisam採用表級鎖

innodb支援行級鎖

表級鎖:粒度最大 的一種鎖,觸發鎖衝突的概率最高,併發度最低,myisam和 innodb引擎都支援表級鎖。

行級鎖:粒度最小 的一種鎖,其加鎖粒度最小,併發度高,但加鎖的開銷也最大,加鎖慢,會出現死鎖。

客戶端**: 分片邏輯在應用端,封裝在jar包中,通過修改或者封裝jdbc層來實現。 當當網的 sharding-jdbc 、阿里的tddl是兩種比較常用的實現。

中介軟體**: 在應用和資料中間加了乙個**層。分片邏輯統一維護在中介軟體服務中。 我們現在談的 mycat、360的atlas、網易的ddb等等都是這種架構的實現

什麼是資料庫 資料庫的作用想學資料庫必看 1

1.ddl data definition language 資料定義語言 資料定義語言 用來定義資料庫物件 庫 丶 表 丶 列等 create 丶 alter 丶 drop 2.dml data manipulation language 資料庫操作語句 用來定義資料庫 記錄 資料 insert ...

資料庫 MySQL 篇

1,建立乙個特殊的帳號,mysql後台程式將在該帳號下執行 root linux root groupadd mysql root linux root useradd g mysql s bin false mysql 2,解壓 root linux pub tar xvfz mysql 4.0....

關於資料庫篇

關於資料庫篇 sql server 2008 r2 todo 2 其中關於輸出引數 out output 了解輸出引數out及輸入輸出引數output 理解輸出引數out及輸入輸出引數output out相當於c 中的ref引數 宣告並初始化 output相當於c 中的out引數 宣告即可 例 資料...