簡體   English   中英

按鍵分區常規(非線性)散列 function

[英]partitioning by key regular ( not linear ) hashing function

我們有一個按鍵分區的表(二進制(16))

是否有任何選項可以計算 go 在 MySQL 之外的哪個分區記錄? hash function(不是線性的)是什么?

原因是將MySQL之外的CSV文件排序,並用LOAD DATA INFILE將它們並行插入到正確的分區中,然后也並行索引。

我在 MySQL 文檔中找不到 function

你有多少索引? 如果只有 hash,對表進行排序,然后加載到一個非分區的 InnoDB 中,PK 已經到位。 同時,確保每一列都使用盡可能小的數據類型。 你有多少內存?

如果您使用的是 MyISAM,請考慮MERGE - 這樣,您可以在單獨的線程中加載每個類似分區的表。 完成后,構造合並它們的“合並”表。

您將使用什么類型的查詢? BINARY(16)的單行查找? 其他任何東西都可能有很大的性能問題。

多少內存? 我們需要調整key_buffer_sizeinnodb_buffer_pool_size

請注意限制。 MyISAM 默認為 7 字節數據指針和 6 字節索引指針。 如果行是DYNAMIC的(字節指針),則 15TB 只需要一個 6 字節的數據指針;如果行是FIXED的(行號),則需要 5 個字節。 這樣可以節省 1 或 2 個字節。 如果有什么是可變長度的,go 和 Dynamic; 修復 go 會浪費太多空間(而且可能不會提高速度)。 我不知道在你的情況下索引指針可以縮小。

你在5.7? MySQL; 8.0 移除了 MyISAM。 同時,MariaDB 仍然處理 MyISAM。

你會先按“分區”拆分數據嗎? 或者將INSERTs一個一個發送到不同的“分區”。 (這個選擇增加了一些皺紋和可能的優化。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM