在SQL服務器分區具有周期狀 表 - >上分區架構 - >上的文件組(F1,F2,F3,F4,...)文件組中MariaDB的
例如Oracle中:
SQL Server中的文件組與Oracle中的表空間類似,它是可以包含一個或多個OS文件的表和索引數據的邏輯存儲。
但是如何MariaDB它有文件組?
在SQL服務器分區具有周期狀 表 - >上分區架構 - >上的文件組(F1,F2,F3,F4,...)文件組中MariaDB的
例如Oracle中:
SQL Server中的文件組與Oracle中的表空間類似,它是可以包含一個或多個OS文件的表和索引數據的邏輯存儲。
但是如何MariaDB它有文件組?
不一樣。你想達到什麼目的?請記住,有些事情是因爲磁盤曾經比數據庫小。今天,很少有問題。此外,RAID控制器,SAN等消除了手動確定文件到哪裏的需要(甚至不需要)。即使在運行中,操作系統也可以連接多個卷。等等
MyISAM能夠說出數據的位置和索引文件的位置。但MyISAM幾乎沒有死。即使在那裏,將數據放在一個驅動器上並將索引放在另一個驅動器上也是愚蠢的。在執行查詢時,首先訪問索引,然後是數據。如果有任何表現獲得,那很少。簡單的RAID條帶可能會做得更好。
InnoDB有一種方法可以說明ibdata1,ibdata2等。這可以追溯到操作系統無法創建大於2GB或4GB的文件的日子。它今天基本上從未使用過。
InnoDB表可以全部位於ibdata1中,也可以分散在各個.ibd文件中。但我並不認爲這就是你所說的。使用這個「每個表文件」,小表被低效存儲。通過讓你在一個給定的「表空間」中放入多個表,類似於.ibd文件,MySQL 8.0會稍微改進。
InnoDB表空間包含給定表或表集合的所有數據和索引。分區表,當file_per_table時,每個分區都存在於不同的.ibd文件中。這可能會隨着8.0而改變。
所有這些都不值得注意。我猜想只有1%的系統需要考慮這一點。簡單地讓MySQL/MariaDB做它想做的事情;這很好。
一件相關的事情......在上世紀80年代和90年代,一些供應商擁有「原始設備」訪問權限,因爲他們認爲他們可能比通過操作系統做得更好。同樣,操作系統已經改進,RAID控制器非常複雜,並且存在SAN。所以生吃不再重要。 (我認爲MySQL從來沒有這樣做過)。這對供應商來說肯定會有一個很大的開發和維護問題。
有多少DBA將tmpdir
放在一個單獨的分區中,只是發現事情崩潰了,因爲它不夠大。 RAM盤的同上。
即使使用優化語句,巨大的表和索引也會很慢 - 如果對錶進行分區,那麼讀取少量分區的語句會更快。如果您僅需要備份分區而不是整個表,備份可能會更快。 –
我不認爲有任何「通過分區備份」,「分區」或磁盤分區。 –
掃描少量分區的唯一時間可能是有利的,因爲您沒有像樣的索引,因此需要掃描整個分區。即便如此,索引可能足以模擬分區。 –