• <optgroup id="ccyim"><button id="ccyim"></button></optgroup>
  • 教育行業A股IPO第一股(股票代碼 003032)

    全國咨詢/投訴熱線:400-618-4000

    MySQL數據庫怎樣分區和分表?【數據分析面試題】

    更新時間:2021年03月05日17時32分 來源:傳智教育 瀏覽次數:




    MySQL數據庫怎樣分區分表?
    (1)問題分析:
    考官主要想考察學員對MySQL數據的理解和拓展,有沒有深入的去理解過數據庫,有沒有在項目開發中對數據庫做過優化。

    (2)核心答案講解:
    分區:就是把一張表的數據分成N個區塊,在邏輯上看最終只是一張表,但底層是由N個物理區塊組成的
    分表:就是把一張表按一定的規則分解成N個具有獨立存儲空間的實體表。系統讀寫時需要根據定義好的規則得到對應的字表明,然后操作它分表可以通過三種方式:MySQL集群、自定義規則(根據一定的算法(如用hash的方式,也可以用求余(取模)的方式)讓用戶訪問不同的表。)和merge存儲引擎。

    分區有四類:
    RANGE 分區:基于屬于一個給定連續區間的列值,把多行分配給分區。
    LIST 分區:類似于按RANGE分區,區別在于LIST分區是基于列值匹配一個離散值集合中的某個值來進行選擇。
    HASH分區:基于用戶定義的表達式的返回值來進行選擇的分區,該表達式使用將要插入到表中的這些行的列值進行計算。這個函數可以包含MySQL 中有效的、產生非負整數值的任何表達式。
    KEY 分區:類似于按HASH分區,區別在于KEY分區只支持計算一列或多列,且MySQL 服務器提供其自身的哈希函數。必須有一列或多列包含整數值。
    (3)問題擴展:
    什么時候考慮使用分區?
    ①一張表的查詢速度已經慢到影響使用的時候;②sql經過優化;③數據量大;④表中的數據是分段的;⑤對數據的操作往往只涉及一部分數據,而不是所有的數據。
    分區解決的問題:
    ①主要可以提升查詢效率。
    什么時候考慮分表
    ①一張表的查詢速度已經慢到影響使用的時候;②sql經過優化;③數據量大;④當頻繁插入或者聯合查詢時,速度變慢。
    分表解決的問題:
    ①分表后,單表的并發能力提高了,磁盤I/O性能也提高了,寫操作效率提高了;②查詢一次的時間短了;③數據分布在不同的文件,磁盤I/O性能提高;④讀寫鎖影響的數據量變小;⑤插入數據庫需要重新建立索引的數據減少。
    (4)結合項目中使用:





    猜你喜歡:

    Python如何使用pymysql鏈接mysql數據庫?

    Mysql5.5.62.msi下載與安裝教程

    爬蟲適合使用Mysql還是Mongdb?

    傳智教育python+數據分析課程

    男女乱婬真视频,波多野结衣中文字幕在观线看,翘着光屁股趴在办公室,欧美做真爱免费A片