国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

mysql的分區技術詳細介紹

2024-07-24 12:46:24
字體:
來源:轉載
供稿:網友

一、概述

當 MySQL的總記錄數超過了100萬后,會出現性能的大幅度下降嗎?答案是肯定的,但是,性能下降>的比率不一而同,要看系統的架構、應用程序、還有>包括索引、服務器硬件等多種因素而定。當有網友問我這個問題的時候,我最常見的回答>就是:分表,可以根據id區間或者時間先后順序等多種規則來分表。分表很容易,然而由此所帶來的應用程序甚至是架構方面的改動工作卻不>容小覷,還包括將來的擴展性等。

在以前,一種解決方案就是使用 MERGE
類型,這是一個非常方便的做飯。架構和程序基本上不用做改動,不過,它的缺點是顯見的:

1.只能在相同結構的 MyISAM 表上使用
2.無法享受到 MyISAM 的全部功能,例如無法在 MERGE 類型上執行 FULLTEXT 搜索
3.它需要使用更多的文件描述符
4.讀取索引更慢

這個時候,MySQL 5.1 中新增的分區(Partition)功能的優勢也就很明顯了:

1.與單個磁盤或文件系統分區相比,可以存儲更多的數據
2.很容易就能刪除不用或者過時的數據
3.一些查詢可以得到極大的優化
4.涉及到 SUM()/COUNT() 等聚合函數時,可以并行進行
5.IO吞吐量更大

分區允許可以設置為任意大小的規則,跨文件系統分配單個表的多個部分。實際上,表的不同部分在不同的位置被存儲為單獨的表。

分區應該注意的事項:

1、 做分區時,要么不定義主鍵,要么把分區字段加入到主鍵中。
2、 分區字段不能為NULL,要不然怎么確定分區范圍呢,所以盡量NOT NULL

二、分區的類型

1.RANGE 分區:基于屬于一個給定連續區間的列值,把多行分配給分區。
2.LIST 分區:類似于按RANGE分區,區別在于LIST分區是基于列值匹配一個離散值集合中的某個值來進行選擇。
2.HASH分區:基于用戶定義的表達式的返回值來進行選擇的分區,該表達式使用將要插入到表中的這些行的列值進行計算。這個函數可以包>含MySQL中有效的、產生非負整數值的任何表達式。
3.KEY分區:類似于按HASH分區,區別在于KEY分區只支持計算一列或多列,且MySQL服務器提供其自身的哈希函數。必須有一列或多列包含>整數值。

可以通過使用SHOW VARIABLES命令來確定MySQL是否支持分區,例如:

復制代碼 代碼如下:

mysql> SHOW VARIABLES LIKE '%partition%';
+-----------------------+-------+
| Variable_name         | Value |
+-----------------------+-------+
| have_partition_engine | YES   |
+-----------------------+-------+
1 row in set (0.00 sec)

復制代碼 代碼如下:
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 大理市| 溆浦县| 诸暨市| 大洼县| 孟村| 宜兰县| 平顺县| 萨嘎县| 丰宁| 大邑县| 平罗县| 寿宁县| 托里县| 巨鹿县| 星子县| 孟州市| 潼南县| 栾城县| 长宁区| 海安县| 大石桥市| 得荣县| 滦平县| 九江市| 襄汾县| 昆山市| 曲沃县| 芷江| 宁津县| 呼和浩特市| 疏附县| 翁源县| 屯留县| 封丘县| 新龙县| 拜泉县| 浑源县| 禄丰县| 舞阳县| 鸡西市| 泰和县|