MYSQL
集羣搭建、主從配置、讀寫分離
參考文檔
《02_CentOS安裝mysql數據庫文檔》
《03_Mysql主從配置文檔》
《04_mysql主從知識點》
分庫分表
分庫:
分佈式項目用的比較多
設計到第三方系統
跨庫查詢:
配置多數據源
分表:
1:涉及海量數據存儲
2:涉及到業務數據(分模塊)存儲
分表方式:
1:根據容量來分200M----不推薦使用
tablename1---200M
tablename2---200M
tablename3---200M
需要配置數據庫mysql的監聽、觸發器
tablename1---199.9M---1M---0.1
tablename2---0.9M
容易造成一些髒數據
2:根據時間來劃分---推薦使用
tablename201801
tablenmae201802
tablename201803
需要寫定時器--22號就會生成一張新表---1.23
什麼時候去劃分?每個月20-25號之間
tablename201801
tablename201802
eg:查詢用戶所有的日誌信息
需要關聯N*12張表,但是在業務處理的時候,我們不建議關聯這麼多張表,代碼邏輯處理不了,只能通過業務處理(增加限制條件)
3:根據用戶ID來劃分---不推薦使用--存在安全漏洞
userid==自增、UUID,---算法----數字---取得是餘數最後一位1-6
table1
table2
table3....
臨時表、視圖、存儲過程
數據庫引擎
四大特性、事務隔離
ACID:
原子性、一致性、隔離性、持久性
事務隔離四大級別:
參考課程大綱腦圖
如何對數據庫做優化?
1:數據庫設計
數據庫表:字段類型、字段長度、註釋、字段命名規範
數據庫索引:外鍵、關聯字段、查詢頻率比較高的字段、
如果數據表字段>20,則最多支持16個索引
如果數據表字段<20,則根據查詢頻率字段來定
數據庫視圖:相當於一張臨時表,業務中,儘量少使用
數據庫引擎:根據業務,選擇對應的表引擎技術
數據庫存儲過程:儘量少用
數據庫字符:UTF-8、或者和頁面字符保持一致
數據庫監聽器/觸發器:一般用於調度任務或者備份還原
2:業務調用的sql語句優化
xml:
儘量少關聯表,效率最高關聯4張表,如果多於4張表,則需要開啓兩個鏈接事務,但是這兩個事務,必須在一個service當中。
如果是查詢語句,則不建議使用*
如果是查詢語句,where條件後面,最好使用索引字段進行關聯
3:數據庫服務器的搭建(集羣)
主從配置:
讀寫分離:
自動化(容器):