色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

MySQL數(shù)據(jù)庫(kù)中通用表空間詳解

OSC開源社區(qū) ? 來(lái)源:OSCHINA 社區(qū) ? 2024-01-10 09:33 ? 次閱讀

作者:愛可生開源社區(qū)

在 MySQL 數(shù)據(jù)庫(kù)中有效管理存儲(chǔ)和性能至關(guān)重要,通用表空間為實(shí)現(xiàn)這一目標(biāo)提供了靈活性。本文討論通用表空間并探討其功能、優(yōu)點(diǎn)和實(shí)際用法,并附有說(shuō)明性示例。

什么是通用表空間?

與默認(rèn)保存系統(tǒng)表的單個(gè)系統(tǒng)表空間不同,通用表空間是用戶定義的多個(gè) InnoDB 表的存儲(chǔ)容器。與默認(rèn)設(shè)置相比,它們?cè)跀?shù)據(jù)組織和性能優(yōu)化方面提供了靈活性。

主要特征

多表存儲(chǔ):與將每個(gè)表存儲(chǔ)在單獨(dú)的文件中的獨(dú)立表空間不同,通用表空間可以容納大量的表,從而提高存儲(chǔ)效率。

靈活的位置:數(shù)據(jù)文件可以駐留在 MySQL 的 data 目錄或獨(dú)立位置,從而可以更好地控制存儲(chǔ)管理和性能調(diào)整。

支持所有表格式:通用表空間可容納所有 InnoDB 表格式,包括冗余、緊湊、動(dòng)態(tài)和壓縮行格式,為特定需求提供靈活性。

內(nèi)存優(yōu)化:與每個(gè)表多個(gè)文件的表空間相比,共享表空間元數(shù)據(jù)減少了內(nèi)存消耗。

使用通用表空間的好處

提高性能:有策略地將數(shù)據(jù)文件放置在更快的磁盤上或?qū)⒈矸植荚诙鄠€(gè)磁盤上可以顯著提高性能。

RAID 和 DRBD 集成:數(shù)據(jù)文件可以放置在 RAID 或 DRBD 卷上,以增強(qiáng)數(shù)據(jù)冗余和災(zāi)難恢復(fù)。

加密支持:MySQL 支持通用表空間加密,增強(qiáng)數(shù)據(jù)的安全性。

方便的表管理:通用表空間允許您將多個(gè)表分組在一起,從而更輕松地管理和組織數(shù)據(jù)庫(kù)對(duì)象。

創(chuàng)建和管理通用表空間

可以使用CREATE TABLESPACE語(yǔ)句創(chuàng)建通用表空間,并指定數(shù)據(jù)文件位置和引擎選項(xiàng)。 創(chuàng)建通用表空間涉及幾個(gè)簡(jiǎn)單的步驟。下面的CREATE TABLESPACE語(yǔ)句使用指定的數(shù)據(jù)文件general_tablespace.ibd創(chuàng)建一個(gè)名為my_general_tablespace的新表空間。此外,它還使用選項(xiàng)ENCRYPTION='Y'啟用表空間加密,并使用FILE_BLOCK_SIZE = 16384選項(xiàng)設(shè)置文件塊大小。 讓我們創(chuàng)建一個(gè)名為my_general_tablespace的通用表空間:

mysql> CREATE TABLESPACE my_general_tablespace
   -> ADD DATAFILE 'general_tablespace.ibd'
   -> ENCRYPTION='Y'
   -> FILE_BLOCK_SIZE = 16384;
ERROR 3185 (HY000): Can't find master key from keyring, please check in the server log if a keyring is loaded and initialized successfully.
mysql>


mysql> pager grep -i keyring_file;
PAGER set to 'grep -i keyring_file'

mysql> SHOW PLUGINS;
50 rows in set (0.00 sec)

mysql> INSTALL PLUGIN keyring_file SONAME 'keyring_file.so';
Query OK, 0 rows affected (0.00 sec)

mysql> SHOW PLUGINS;
| keyring_file                     | ACTIVE   | KEYRING            | keyring_file.so | GPL     |
50 rows in set (0.00 sec)

mysql> CREATE TABLESPACE my_general_tablespace
   -> ADD DATAFILE 'general_tablespace.ibd'
   -> ENCRYPTION='Y'
   -> FILE_BLOCK_SIZE = 16384;
Query OK, 0 rows affected (0.01 sec)

mysql>

現(xiàn)在,讓我們看看如何在數(shù)據(jù)目錄之外創(chuàng)建通用表空間。

root@mysql8:/var/lib# mkdir mysql_user_defined
root@mysql8:/var/lib# chown -R mysql.mysql mysql_user_defined
root@mysql8:/var/lib#

mysql> CREATE TABLESPACE user_defined_general_tablespace
    -> ADD DATAFILE '/var/lib/var/lib/mysql_user_defined/user_defined_general_tablespace.ibd'
    -> Engine=InnoDB;
ERROR 3121 (HY000): The DATAFILE location must be in a known directory.
錯(cuò)誤 3121 (HY000):數(shù)據(jù)文件位置必須位于已知目錄中。提示 MySQL 無(wú)法在指定目錄中創(chuàng)建表空間,因?yàn)樵撃夸浳磁渲脼閿?shù)據(jù)文件的有效位置。 要解決此錯(cuò)誤,請(qǐng)按照下列步驟操作:使用SHOW VARIABLES LIKE 'innodb_directories'檢查配置的目錄;如果/var/lib/mysql_user_define未列出,請(qǐng)繼續(xù)添加該目錄。
mysql> SHOW VARIABLES LIKE 'innodb_directories';
+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| innodb_directories |       |
+--------------------+-------+
1 row in set (0.00 sec)

root@mysql8:/etc/mysql/mysql.conf.d# grep -i innodb_directories mysqld.cnf
innodb_directories=/var/lib/mysql_user_defined
root@mysql8:/etc/mysql/mysql.conf.d# service mysql restart
root@mysql8:/etc/mysql/mysql.conf.d

mysql> CREATE TABLESPACE user_defined_general_tablespace
    -> ADD DATAFILE '/var/lib/mysql_user_defined/user_defined_general_tablespace.ibd'
    -> Engine=InnoDB;
Query OK, 0 rows affected (0.02 sec)

將表分配給通用表空間

創(chuàng)建 MySQL 通用表空間后,您可以在表創(chuàng)建過(guò)程中或通過(guò)更改現(xiàn)有表為其分配表。以下是在my_general_tablespace中創(chuàng)建表的示例:

mysql> CREATE TABLE my_table (
    ->     id INT PRIMARY KEY,
    ->     name VARCHAR(50)
    -> ) TABLESPACE = my_general_tablespace;
ERROR 3825 (HY000): Request to create 'unencrypted' table while using an 'encrypted' tablespace.
mysql>

mysql> CREATE TABLE my_table (
    ->     id INT PRIMARY KEY,
    ->     name VARCHAR(50)
    -> ) TABLESPACE = my_general_tablespace
    ->   ENCRYPTION='Y';
Query OK, 0 rows affected (0.02 sec)
我們創(chuàng)建的user_define_general_tablespace未加密,允許我們?cè)谄渲袆?chuàng)建未加密的表。
mysql> CREATE TABLE my_unencrypted_table(
    -> id INT PRIMARY KEY,
    -> name VARCHAR(50)
    -> ) TABLESPACE = user_defined_general_tablespace;
Query OK, 0 rows affected (0.01 sec)

將表遷移到通用表空間

如果您有現(xiàn)有表并希望將它們移動(dòng)到通用表空間,則可以使用ALTER TABLE語(yǔ)句。例如:

mysql> show create table authorsG
*************************** 1. row ***************************
       Table: authors
Create Table: CREATE TABLE `authors` (
  `id` int DEFAULT NULL,
  `first_name` varchar(50) DEFAULT NULL,
  `last_name` varchar(50) DEFAULT NULL,
  `age` int DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
1 row in set (0.00 sec)

mysql> ALTER TABLE authors
    -> TABLESPACE = my_general_tablespace;
ERROR 3825 (HY000): Request to create 'unencrypted' table while using an 'encrypted' tablespace.

mysql> ALTER TABLE authors ENCRYPTION='Y';
Query OK, 0 rows affected (0.05 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> ALTER TABLE authors
    -> TABLESPACE = my_general_tablespace;
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql>
要將表從通用表空間轉(zhuǎn)移到獨(dú)立表空間,請(qǐng)指定“innodb_file_per_table”作為目標(biāo)表空間名稱。
mysql> ALTER TABLE authors
    -> TABLESPACE = innodb_file_per_table ENCRYPTION = 'Y';
Query OK, 0 rows affected (0.04 sec)
Records: 0  Duplicates: 0  Warnings: 0

監(jiān)控

該查詢檢索指定 MySQL 表空間的信息,包括表空間名稱、文件名、存儲(chǔ)引擎、狀態(tài)和可用的空閑數(shù)據(jù)空間。

mysql> SELECT TABLESPACE_NAME, FILE_NAME, ENGINE, STATUS, DATA_FREE FROM INFORMATION_SCHEMA.FILES WHERE TABLESPACE_NAME IN ('my_general_tablespace',
'user_defined_general_tablespace')G
*************************** 1. row ***************************
TABLESPACE_NAME: my_general_tablespace
      FILE_NAME: ./general_tablespace.ibd
         ENGINE: InnoDB
         STATUS: NORMAL
      DATA_FREE: 0
*************************** 2. row ***************************
TABLESPACE_NAME: user_defined_general_tablespace
      FILE_NAME: /var/lib/mysql_user_defined/user_defined_general_tablespace.ibd
         ENGINE: InnoDB
         STATUS: NORMAL
      DATA_FREE: 0
2 rows in set (0.00 sec)
以下查詢有助于查找有關(guān)屬于指定表空間的 InnoDB 表的信息。
mysql> SELECT NAME, SPACE_TYPE, TABLESPACE_NAME from INFORMATION_SCHEMA.INNODB_TABLES JOIN INFORMATION_SCHEMA.FILES ON FILE_ID=SPACE WHERE TABLESPACE_NAME='my_general_tablespace'G
*************************** 1. row ***************************
           NAME: mytestdb/my_table
     SPACE_TYPE: General
TABLESPACE_NAME: my_general_tablespace
*************************** 2. row ***************************
           NAME: mytestdb/books
     SPACE_TYPE: General
TABLESPACE_NAME: my_general_tablespace
2 rows in set (0.01 sec)

要檢索特定 InnoDB 表的 TABLESPACE 信息,請(qǐng)使用以下查詢。

mysql> SELECT NAME, SPACE_TYPE, TABLESPACE_NAME from INFORMATION_SCHEMA.INNODB_TABLES JOIN INFORMATION_SCHEMA.FILES ON FILE_ID=SPACE WHERE NAME='mytestdb/my_table'G
*************************** 1. row ***************************
           NAME: mytestdb/my_table
     SPACE_TYPE: General
TABLESPACE_NAME: my_general_tablespace
1 row in set (0.00 sec)

實(shí)際使用示例:

將頻繁訪問(wèn)和很少使用的表進(jìn)行分離:將頻繁訪問(wèn)的表放置在 SSD 上的通用表空間中,以獲得卓越的性能,同時(shí)將很少使用的表放置在基于 HDD 的通用表空間中,以優(yōu)化存儲(chǔ)成本。

平衡 I/O 負(fù)載:將表分布在位于不同磁盤上的多個(gè)通用表空間中,以避免 I/O 瓶頸并提高查詢執(zhí)行速度。

關(guān)鍵數(shù)據(jù)的專用存儲(chǔ):為關(guān)鍵表創(chuàng)建具有 RAID 或 DRBD 配置的獨(dú)立通用表空間,確保最大程度的冗余并防止硬件故障。

結(jié)論

MySQL 通用表空間提供了強(qiáng)大而靈活的存儲(chǔ)解決方案,用于優(yōu)化數(shù)據(jù)組織和性能,了解其功能并有效部署它們可以顯著改善您的數(shù)據(jù)庫(kù)管理工作。為了最大限度地發(fā)揮其優(yōu)勢(shì),請(qǐng)記住在實(shí)施通用表空間之前仔細(xì)考慮您的特定需求和工作負(fù)載特征。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)庫(kù)
    +關(guān)注

    關(guān)注

    7

    文章

    3807

    瀏覽量

    64423
  • 開源
    +關(guān)注

    關(guān)注

    3

    文章

    3358

    瀏覽量

    42516
  • MySQL
    +關(guān)注

    關(guān)注

    1

    文章

    813

    瀏覽量

    26594

原文標(biāo)題:MySQL通用表空間的這幾個(gè)選項(xiàng)你會(huì)用么?

文章出處:【微信號(hào):OSC開源社區(qū),微信公眾號(hào):OSC開源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何在Rust連接和使用MySQL數(shù)據(jù)庫(kù)

    MySQL是一個(gè)廣泛使用的關(guān)系型數(shù)據(jù)庫(kù),Rust作為一門相對(duì)較新的系統(tǒng)級(jí)編程語(yǔ)言,具有C語(yǔ)言般的高性能、安全、并發(fā)等特性,因此與MySQL一起使用是一種非常有趣的選擇。在本教程,我們
    的頭像 發(fā)表于 09-30 17:05 ?1690次閱讀

    MySQL數(shù)據(jù)庫(kù)如何安裝和使用說(shuō)明

    MySQL數(shù)據(jù)庫(kù)開發(fā) 基礎(chǔ)概念 1.數(shù)據(jù):描述事物特征的符號(hào),屬性 2.數(shù)據(jù)庫(kù)的概念:管理計(jì)算機(jī)
    的頭像 發(fā)表于 02-13 16:13 ?2803次閱讀

    MySQL端口可以從MySQL數(shù)據(jù)庫(kù)存儲(chǔ)和檢索數(shù)據(jù)

    MySQL端口可以從MySQL數(shù)據(jù)庫(kù)存儲(chǔ)和檢索數(shù)據(jù)。 概覽 建立連接后,端口讀取數(shù)據(jù)庫(kù)
    的頭像 發(fā)表于 02-15 14:07 ?1680次閱讀

    華為云數(shù)據(jù)庫(kù)-RDS for MySQL數(shù)據(jù)庫(kù)

    (for MySQL)為輔。 MySQL數(shù)據(jù)庫(kù)是全球最受歡迎的一種數(shù)據(jù)庫(kù),它是屬于 Oracle旗下的一款產(chǎn)品,MySQL是一種關(guān)系型
    的頭像 發(fā)表于 10-27 11:06 ?1528次閱讀

    MySQL數(shù)據(jù)庫(kù)服務(wù)器、數(shù)據(jù)庫(kù)之間是什么關(guān)系

    數(shù)據(jù)庫(kù)服務(wù)器:MySQL安裝后,會(huì)成為一個(gè)windows服務(wù),這個(gè)windows服務(wù)可以看做是數(shù)據(jù)庫(kù)服務(wù)器。用CMD登錄MySQL,此時(shí)CMD就是一個(gè)客戶端。
    的頭像 發(fā)表于 01-31 14:59 ?1222次閱讀
    <b class='flag-5'>MySQL</b><b class='flag-5'>數(shù)據(jù)庫(kù)</b>服務(wù)器、<b class='flag-5'>數(shù)據(jù)庫(kù)</b>和<b class='flag-5'>表</b>之間是什么關(guān)系

    MySQL數(shù)據(jù)庫(kù)管理與應(yīng)用

    討論MySQL數(shù)據(jù)庫(kù)的管理和應(yīng)用。 管理MySQL數(shù)據(jù)庫(kù) 在管理MySQL數(shù)據(jù)庫(kù)之前,我們需要了
    的頭像 發(fā)表于 08-28 17:15 ?977次閱讀

    數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—MySQL數(shù)據(jù)庫(kù)誤刪除記錄的數(shù)據(jù)恢復(fù)案例

    數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)環(huán)境: 一臺(tái)本地windows sever操作系統(tǒng)服務(wù)器,服務(wù)器上部署mysql數(shù)據(jù)庫(kù)單實(shí)例,引擎類型為innodb,內(nèi)
    的頭像 發(fā)表于 11-09 15:16 ?1338次閱讀
    <b class='flag-5'>數(shù)據(jù)庫(kù)</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—<b class='flag-5'>MySQL</b><b class='flag-5'>數(shù)據(jù)庫(kù)</b><b class='flag-5'>表</b>誤刪除記錄的<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)案例

    mysql是一個(gè)什么類型的數(shù)據(jù)庫(kù)

    強(qiáng)、易于使用和管理。在本文中,我們將詳盡、詳實(shí)、細(xì)致地介紹MySQL的功能、優(yōu)勢(shì)、架構(gòu)、語(yǔ)法等方面。 一、MySQL的功能: 數(shù)據(jù)庫(kù)管理:MySQL具備創(chuàng)建和管理
    的頭像 發(fā)表于 11-16 14:43 ?1796次閱讀

    數(shù)據(jù)庫(kù)mysql基本增刪改查

    的基本增刪改查操作。 一、增加數(shù)據(jù)(INSERT) 在MySQL,可以使用INSERT語(yǔ)句來(lái)向數(shù)據(jù)庫(kù)添加
    的頭像 發(fā)表于 11-16 16:35 ?1520次閱讀

    mysql數(shù)據(jù)庫(kù)如何創(chuàng)建數(shù)據(jù)表

    MySQL是一種常用的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),可以用于創(chuàng)建和管理數(shù)據(jù)表。下面是一篇詳細(xì)的關(guān)于MySQL數(shù)據(jù)庫(kù)如何創(chuàng)建
    的頭像 發(fā)表于 11-21 11:08 ?1798次閱讀

    MySQL數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)

    的基礎(chǔ)知識(shí),包括其架構(gòu)、數(shù)據(jù)類型、操作、查詢語(yǔ)句和數(shù)據(jù)導(dǎo)入導(dǎo)出等方面。 MySQL 數(shù)據(jù)庫(kù)架構(gòu) MyS
    的頭像 發(fā)表于 11-21 11:09 ?976次閱讀

    mysql數(shù)據(jù)庫(kù)基礎(chǔ)命令

    MySQL是一個(gè)流行的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),經(jīng)常用于存儲(chǔ)、管理和操作數(shù)據(jù)。在本文中,我們將詳細(xì)介紹MySQL的基礎(chǔ)命令,并提供與每個(gè)命令相關(guān)的詳細(xì)解釋。 登錄
    的頭像 發(fā)表于 12-06 10:56 ?596次閱讀

    數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—未開啟binlog的Mysql數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)案例

    mysql數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)環(huán)境: 本地服務(wù)器,windows server操作系統(tǒng) ,部署有mysql單實(shí)例,數(shù)據(jù)庫(kù)引擎類型為innodb,
    的頭像 發(fā)表于 12-08 14:18 ?1146次閱讀
    <b class='flag-5'>數(shù)據(jù)庫(kù)</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—未開啟binlog的<b class='flag-5'>Mysql</b><b class='flag-5'>數(shù)據(jù)庫(kù)</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)案例

    mysql怎么新建一個(gè)數(shù)據(jù)庫(kù)

    mysql怎么新建一個(gè)數(shù)據(jù)庫(kù) 如何新建一個(gè)數(shù)據(jù)庫(kù)MySQL 創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)
    的頭像 發(fā)表于 12-28 10:01 ?905次閱讀

    數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—Mysql數(shù)據(jù)庫(kù)表記錄丟失的數(shù)據(jù)恢復(fù)流程

    Mysql數(shù)據(jù)庫(kù)故障: Mysql數(shù)據(jù)庫(kù)表記錄丟失。 Mysql數(shù)據(jù)庫(kù)故障表現(xiàn): 1、
    的頭像 發(fā)表于 12-16 11:05 ?167次閱讀
    <b class='flag-5'>數(shù)據(jù)庫(kù)</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—<b class='flag-5'>Mysql</b><b class='flag-5'>數(shù)據(jù)庫(kù)</b>表記錄丟失的<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)流程
    主站蜘蛛池模板: 久久这里只有精品无码3D| 亚洲三区视频| 一本道亚洲区免费观看| np高h肉文| 久久电影院久久国产| 涩涩游戏盒| 92电影网午夜福利| 国产亚洲精品精华液| 情欲.美女高潮| 在线观看99| 国产亚洲精品香蕉视频播放| 欧美牲交A欧美牲交| 又大又硬又爽免费视频| 国产国产乱老熟视频网站| 男生插曲女生身全过程| 幺妹视频福利视频| 国产精品久久精品| 青娱乐国产精品视频| 中文字幕亚洲无线码高清不卡| 国产亚洲精品精品国产亚洲综合| 日本色女孩影院| 99久久精品国产国产毛片| 久久大香萑太香蕉av| 亚洲第一色网站| 国产69精品久久久久乱码| 欧美国产精品主播一区| 在线视频 中文字幕| 花蝴蝶高清影视视频在线播放| 水蜜桃亚洲一二三四在线| yellow片在线观看免费观看动漫 | 国产成人精品免费视频下载| 欧美成人免费观看久久| 中文国产成人精品久久免费| 好男人在线观看免费视频WWW | a级精品九九九大片免费看| 久久天天躁狠狠躁夜夜躁| 亚洲免费久久| 国产亚洲欧美高清在线| 翁熄性放纵交换300章| 国产91青青成人a在线| 人妻免费久久久久久久了|