日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

X-Engine引擎常見問題

本文匯總了與X-Engine引擎相關的常見問題。關于更多高壓縮引擎X-Engine的使用問題和RDS X-Engine遷移至PolarDB X-Engine問題請進釘釘群咨詢,群號:24490017825。

X-Engine引擎是什么,能解決什么問題?

X-Engine是阿里巴巴自研的基于LSM-tree架構的存儲引擎,提供了強大的數據壓縮能力,滿足了歸檔數據庫低存儲成本的要求。通過LSM-Tree(Log-Structured Merge-Tree)層次化架構和Zstandard(ZSTD)壓縮算法實現了更高的數據壓縮率,相較于使用InnoDB作為存儲引擎,最高可節省70%的存儲空間。相關文檔請參見高壓縮引擎(X-Engine)

X-Engine壓縮效果怎樣?

X-Engine引擎默認打開數據壓縮功能。一般情況下,相對于InnoDB引擎,存儲空間能壓縮到1/3至1/10,具體壓縮比例與數據特征有關。X-Engine引擎支持通過采樣信息來估算壓縮比,您可以結合外部信息(如數據導入前的數據大小)自行計算準確的壓縮率。

假設需要查詢的表在數據庫test中,表名為test1,來查詢表數據估算后的壓縮比。SQL語句如下:

SELECT 
    TABLE_NAME,
    SUBTABLE_NAME,
	SUM(EXTENTS*APRROX_CMP_RATIO)/SUM(EXTENTS)
FROM 
	INFORMATION_SCHEMA.XENGINE_SUBTABLE 
WHERE TABLE_NAME = 'test.test1' AND SUBTABLE_NAME = 'PRIMARY' AND LEVEL in (1, 2);

SQL語句中XENGINE_SUBTABLE表的Schema信息如下表:

列名

說明

TABLE_NAME

由數據庫名稱和表名拼接而成。如test.test1

SUBTABLE_NAME

索引名稱。

LEVEL

邏輯層號。

EXTENTS

邏輯層使用的extent數量。

NUM_ENTRIES

當前邏輯層的數據量。

NUM_DELETES

邏輯層刪除的數據量。

APRROX_CMP_RATIO

當前邏輯層采樣近似壓縮比。

SAMPLE_OUTDATED

當前邏輯層的采樣信息是否過期。

說明
  • 支持使用SQL語句查詢壓縮比的企業版集群版本需要滿足以下條件之一:

    • PolarDB MySQL版8.0.1版本,且修訂版本為8.0.1.1.40及以上。

    • PolarDB MySQL版8.0.2版本,且修訂版本為8.0.2.2.22及以上。

  • X-Engine引擎中的表是基于LSM-Tree的索引組織表,表數據存儲在主索引中。主索引LSM-Tree分為3層,大部分數據集中在第1層和第2層,其中第0層是從內存直接轉儲的數據,不進行數據壓縮。因此,查詢壓縮率的SQL語句中使用LEVEL in (1, 2)來計算這兩層壓縮比的加權平均值,從而得到X-Engine中的表數據的壓縮比。

  • 如果要查詢某個二級索引上的數據的壓縮比,需要在SQL語句中指定SUBTABLE_NAME索引名稱。

批量導入數據到X-Engine表后為什么壓縮率較低?

X-Engine采用后臺異步壓縮技術,是在不影響業務使用的情況下,逐漸重整并壓縮數據以達到理想壓縮率。重整和后臺壓縮操作一般在業務低峰期進行。因此,批量導入后,數據存儲空間可能接近壓縮前水平,一段時間后空間將逐步釋放。

X-Engine引擎相比RocksDB引擎、TokuDB引擎如何?

X-Engine引擎壓縮率與TokuDB、RocksDB引擎壓縮率接近。目前TokuDB社區已經停滯發展,后續數據庫服務的可持續性無法保證,之前阿里云上存量的TokuDB用戶已全部轉到X-Engine引擎。相對RocksDB引擎以及對應的myrocks產品,PolarDB高壓縮引擎(X-Engine)的核心優勢是提供了海量存儲,彈性以及在線變更schema的能力。相關文檔請參見X-Engine性價比優勢

購買PolarDB集群時,如何選擇使用X-Engine引擎?

PolarDB MySQL版8.0版本支持X-Engine引擎,PolarDB高壓縮引擎(X-Engine)的創建方式與PolarDB集群創建方式一致,您只需在售賣頁選擇兼容性MySQL 8.0,且系列高壓縮引擎(X-Engine)即可。

已經使用的PolarDB集群,是否支持開啟X-Engine引擎?

目前PolarDB的最新版本已經支持存量PolarDB集群開啟X-Engine引擎功能。選擇PolarDB集群,在左側導航欄選擇配置與管理->高壓縮引擎即可。動態開啟X-Engine引擎的功能需要PolarDB MySQL版8.0版本且內核小版本需為8.0.1.1.31及以上。

如何使用X-Engine引擎表?

對于新建表,直接指定engine=xengine即可;對于存量表,可以通過ALTER語句將表轉換為X-Engine引擎。相關文檔請參見InnoDB/TokuDB/Myrocks引擎轉換為X-Engine引擎

X-Engine是否有相關的客戶案例?

X-Engine引擎已經支持了阿里巴巴集群和阿里云的大量用戶,累計數據量達到PB級別,總體實例數目超過3000+。客戶案例相關文檔請參見X-Engine最佳實踐

X-Engine引擎功能是否收費?

購買使用X-Engine引擎與InnoDB引擎計費規則一致,不額外單獨收費。具體來說,如果存放在InnoDB引擎的數據是100 GB,存放在X-Engine引擎時數據被壓縮為30 GB,就按照30 GB的存儲容量計費。

PolarDB(X-Engine)相對于RDS(X-Engine)優勢是什么?

PolarDB(X-Engine)提供了海量的存儲空間,徹底解決用戶的容量焦慮,最大支持500 TB的存儲空間,PolarDB(X-Engine)采用存算分離技術,彈性增/減只讀節點,一份數據至多支持16個只讀節點。PolarDB(X-Engine)采用分布式存儲,數據庫的高可用不再需要依賴Binlog復制,間接提高了寫入性能。

PolarDB MySQL版5.6/5.7版本是否支持X-Engine引擎?

不支持。

X-Engine支持事務嗎?

支持事務。

X-Engine支持OnlineDDL嗎?

支持,執行DDL變更過程中,不會阻塞其它事務的更新。

X-Engine支持并行DDL嗎?

支持。

X-Engine引擎支持行鎖嗎?

X-Engine引擎支持行粒度的并發控制,并支持死鎖檢測,與InnoDB引擎一致。

X-Engine引擎支持哪些隔離級別?

支持read-committed,repeatable-read隔離級別,默認的隔離級別是read-committed。

X-Engine引擎支持大事務嗎?

不支持大事務。對于大事務,內部會自動按行拆分,當一個事務修改的行數等于或大于10000行時,X-Engine會啟用commit in middle功能,即X-Engine會在內部提交該事務,并重新開啟一個子事務繼續執行該事務。

X-Engine支持分區表嗎?

支持。集群版本需滿足以下要求:

  • PolarDB MySQL版8.0.1版本且修訂版本為8.0.1.1.34及以上。

  • PolarDB MySQL版8.0.2版本且修訂版本為8.0.2.2.16及以上。

說明
  • 該功能目前處于灰度發布階段,如果需要開啟該功能,請前往配額中心,根據配額IDpolardb_mysql_xengine_partition找到配額名稱,在對應的操作列單擊申請來申請開通該功能。

  • 如需了解更多關于創建X-Engine分區表的內容,請搜索釘釘群號加群進行咨詢。釘釘群號:24490017825。

X-Engine支持列索引分析嗎?

不支持。

X-Engine引擎有哪些功能限制?

X-Engine引擎是一個事務引擎,完全兼容MySQL協議,具備存儲引擎常用功能,對于一些高級功能的支持還不完善,具體使用限制請參見X-Engine使用說明

X-Engine支持不同存儲介質冷熱分離嗎?

不支持。

X-Engine支持并行查詢嗎?

目前僅PolarDB MySQL版8.0.1版本且修訂版本為8.0.1.1.34及以上的版本支持并行查詢。

X-Engine引擎的性能怎樣?

X-Engine引擎采用LSM-tree組織數據,寫入友好,寫入性能強,讀能力相對較弱。X-Engine引擎默認對數據開啟壓縮,綜合性能相對于InnoDB引擎略有下降,在標準Sysbench壓測場景下,性能較InnoDB引擎下降10%-20%之間。詳情請參見PolarDB MySQL版8.0.1版本高壓縮引擎(X-Engine)與集群版性能對比

如何查看X-Engine引擎中的表占用的存儲空間容量?

使用集群主地址連接數據庫集群,根據需要查詢的庫名和表名在XENGINE_SUBTABLE表中查詢該表對應的TABLE_SPACE_ID,并通過查詢到的TABLE_SPACE_IDINFORMATION_SCHEMAXENGINE_TABLE_SPACE表中查看該表已使用的extent數量,再根據extent數量計算出該表占用的存儲空間容量。

說明

單個extent占用的存儲空間容量為2 MB。

假設要查詢的表所在的數據庫為test,表名為test1,則查詢表占用的存儲空間容量的SQL語句如下:

SELECT 
 	SUM(TOTAL_EXTENT_COUNT)/512 AS SIZE_GB,
  SUM(USED_EXTENT_COUNT)/512 AS USED_SIZE_GB,
  SUM(FREE_EXTENT_COUNT)/512 AS FREE_SIZE_GB
FROM 
	INFORMATION_SCHEMA.XENGINE_TABLE_SPACE
WHERE TABLE_SPACE_ID IN (
  SELECT TABLE_SPACE_ID 
FROM 
	INFORMATION_SCHEMA.XENGINE_SUBTABLE 
WHERE TABLE_NAME = 'test.test1');

其中,XENGINE_TABLE_SPACE是以文件視角來統計存儲空間容量。該表中與空間相關的列及其說明如下:

列名

說明

TABLE_SPACE_ID

表空間的ID。

說明

您可以在XENGINE_SUBTABLE表中通過表名查詢該值。

TOTAL_EXTENT_COUNT

總extent數量。

USED_EXTENT_COUNT

已使用的extent數量。

FREE_EXTENT_COUNT

空閑extent數量。

XENGINE_SUBTABLE是以LSM各個層的角度來統計存儲空間容量。該表中的列及其說明如下:

列名

說明

TABLE_NAME

數據庫名和表名的拼接。如數據庫名為test,表名為test1,則TABLE_NAME為test.test1

SUBTABLE_NAME

索引名。

SUBTABLE_ID

索引ID。

TABLE_SPACE_ID

索引對應的table space ID。

LEVEL

邏輯層號。

LAYER

邏輯層中的物理層。

說明

level 0可能存在多個物理層,level1和level2只有一個物理層。

EXTENTS

該層使用的extent數量。