基本來說, 分割槽和分表帶來的效能提公升是一樣的,
由於分割槽實際上就可以認為是mysql底層來幫我們實現分表的邏輯了, 所以相對來說分表會比分區帶來更高的編碼複雜度(分割槽就根本不用考慮多表分頁查詢的問題了).
從這個角度來說, 一般的業務直接分割槽就可以了.
當然, 選擇分割槽還是分表還是需要做一點權衡的:
1. 表中的資料只有部分熱點資料經常訪問, 其他的不常訪問的話, 適合用分割槽表
2. 分割槽表相對容易維護, 可以針對單獨乙個分割槽進行檢查,優化, 批量刪除大量資料時, 分割槽表會比一般的表更快
3. 分割槽表可以分布在不同的物理裝置上, 從而可以高效地利用多個硬碟
4. 如果查詢條件不包含partition key的話, 分割槽表不一定有分表效率高
5. 如果分割槽表中絕對的熱點資料, 每一條資料都有可能被訪問到, 也不太適合分割槽
6. 如果資料量超大, 由於mysql只能分1024個分割槽, 如果1024個分割槽的資料都是千萬以上, 那肯定是也不適合分割槽的了
綜上所述, 如果分割槽表就足夠滿足我們的話, 那其實就沒有必要進行分表了增加程式設計的複雜度了.
另外, 如果不想將資料表進行拆分, 而表的資料量又的確很大的話, nosql也是乙個替代方案. 特別是那些不需要強事務的表操作,
就很適合放在nosql, 從而可以避免程式設計的複雜度, 同時效能上也沒有過多的損耗.
nosql的方案也有很多:
1. mongodb
2. hbase
3. tidb
4. elasticsearch
當然也可以使用mysql+nosql結合的方式, 例如常規讀寫操作mysql, 分頁查詢走es等等. 把非分割槽表改為分割槽表
把非分割槽表改為分割槽表 說明 把非分割槽表改為分割槽表適用於歷史表 1 建立分割槽表 結構和非分割槽表tbl stock balance log相同 createtabletbl stock balance log part1 account id varchar2 20 byte occur d...
MySQL分割槽表 hash分割槽
雜湊分割槽最主要的用法是用來保證資料的平均分布。使用範圍分割槽和列表分割槽時必須顯示地定義分割槽值或者值列表 但是使用雜湊分割槽時,我們只需要對列值或者基於列值的表示式進行雜湊運算,就可以進行分割槽了。在進行雜湊分割槽是,我們需要在create table語句後加上partition by hash...
ORACLE 分割槽表分割槽拆分
oracle建立分割槽表,分割槽規則為按照日期進行分割槽,由於投產日期未知,因此建議使用按照當前日期自動建立分割槽。僅需建立乙個max分割槽,然後通過split進行分割槽拆分,建立一年前的全部分割槽。示例 如下 create table wen dt decimal 8,0 id decimal 1...