一.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引數 宣告即可 例 資料...