MYSQL集羣-主從配置 火推17

MYSQL集羣-主從配置

《02_CentOS安裝mysql數據庫文檔》
《03_Mysql主從配置文檔》
《04_mysql主從知識點》

MYSQL集羣-主從配置讀寫分離

參考工程文件

數據庫分庫分表、跨庫查詢

分庫:mysql

1:涉及到多數據源能夠進行分庫
2:項目部署是分佈式系統,能夠進行分庫
3:涉及到大量的數據存儲,須要分庫

跨庫查詢:算法

1:必需要配置多數據源
2:在jdbc屬性文件中增長多個數據庫配置信息,key值保持惟一
3:在建立數據源的bean,須要搭建多個bean組件,id保持惟一
4:在dao層須要查詢數據的時候,調用bean對應的templatement就能夠了

分表:sql

應用場景:

1:設計到大量的數據存儲,而且數據須要查詢的時候

如何分表:數據庫

1:首先保證分表以後,表結構、索引、引擎、編碼字符、視圖等一致性
2:表名不能同樣

第一種方式:

    按照表容量大小進行分表(能夠實現,不建議使用)
    假設表容量最大200M(配置表的觸發器)

    tablename1-----199.9M----200.1M---數據丟失
    tablename2-----0.1M-----數據不全、髒數據
    tablename3.....

第二種方式:

    按照時間進行分表(推薦使用)
        建議每月的20-25號左右,提早複製一張表
        寫(監聽)

    tablename_20171020
    tablename_20171120
    tablename_20171220
    tablename_20180120

    要寫動態sql了


第三種,使用算法,判斷表名稱

    用戶ID必須使用的是UUID生成的字符
        UUID對3取模/10,取餘數1-6
    那麼此時可使用這種方式,不過這種方式最多能夠建立6張表
    tablename1
    tablename2
    tablename...6

數據庫觸發器、監聽器、視圖、存儲過程

參考資料:服務器

https://mp.weixin.qq.com/s?_biz=MzIxMjg4NDU1NA==&mid=2247484060&idx=1&sn=3216af458cef0cae1a82f189a538b3f7&chksm=97be0fb9a0c986af6a28a066341031a46f6161a1cf27e6b8a7a6f7cf49af5faeb55775d8eb9a&scene=21#wechatredirect數據庫設計

你是如何對數據庫作優化的?

1:數據庫設計
    數據庫表:字段類型、字段長度、註釋、字段命名規範
    數據庫索引:外鍵、關聯字段、查詢頻率比較高的字段、
            若是數據表字段>20,則最多支持16個索引
            若是數據表字段<20,則根據查詢頻率字段來定
    數據庫視圖:至關於一張臨時表,業務中,儘可能少使用
    數據庫引擎:根據業務,選擇對應的表引擎技術
    數據庫存儲過程:儘可能少用
    數據庫字符:UTF-八、或者和頁面字符保持一致
    數據庫監聽器/觸發器:通常用於調度任務或者備份還原

2:業務調用的sql語句優化
    xml:
    儘可能少關聯表,效率最高關聯4張表,若是多於4張表,則須要開啓兩個連接事務,可是這兩個事務,必須在一個service當中。
    若是是查詢語句,則不建議使用*
    若是是查詢語句,where條件後面,最好使用索引字段進行關聯

3:數據庫服務器的搭建(集羣)
    主從配置:
    讀寫分離:
    自動化(容器):
相關文章
相關標籤/搜索