欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL Cluster如何創(chuàng)建磁盤表方法解讀

 更新時間:2012年11月12日 09:43:33   作者:  
MySQL Cluster采用一系列的Disk Data objects來實現磁盤表;接下來為您詳細介紹
一、概念
MySQL Cluster采用一系列的Disk Data objects來實現磁盤表。
Tablespaces:作用是作為其他Disk Data objects的容器。
Undo log files:存儲事務進行回滾需要的信息,一個或者多個undo log files組成一個log files group,最后,該log file group關聯到一個tablespaces。
Data files:作用是存儲表中的數據,data file直接關聯到tablespaces。
在每一個數據節(jié)點上undo log files和data files都是實際的文件,默認的,存放在ndb_node_id_fs文件夾下,該路徑是在MySQL Cluster的config.ini中用DataDir指定的,node_id是data node的node ID。可以用絕對路徑或者相對路徑指定undo log或者data file的路徑。tablespaces和log file group則不是實際的文件。
注意:盡管不是所有的Disk Data Object都作為文件存儲,但是他們共享同一的命名空間,這意味著每個Disk Data Object必須唯一命名。
二、創(chuàng)建步驟
MySQL Cluster創(chuàng)建一個磁盤表需要包含以下幾步:
2.1、創(chuàng)建一個log file group,將一個或者多個undo log files關聯到它上面(undo log file也叫做 undofile)。注意,undo log file只是在創(chuàng)建磁盤表的時候才需要,創(chuàng)建ndb的內存表的時候不需要。
2.2、創(chuàng)建一個tablespaces,關聯一個log file group和一個或者多個data files到上面。
2.3、使用該tablespaces創(chuàng)建一個磁盤表存儲數據。
下面做一個例子:
2.4、創(chuàng)建log file group:

我們創(chuàng)建一個名為lg_cloudstor的log file group,包含cloudstor_undo_1.log和cloudstor_undo_2.log兩個undo log file。初始大小分別為200M和100M(默認的undo log file的初始大小為128M),你還可以指定log file group的重寫緩沖大小(默認為8M),這里我們設置為20M。創(chuàng)建log file group的時候必須和一個undo log file一起創(chuàng)建。如下:
復制代碼 代碼如下:

CREATE LOGFILE GROUP lg_cloudstor
ADD UNDOFILE 'cloudstor_undo_1.log'
INITIAL_SIZE 200M
UNDO_BUFFER_SIZE 20M
ENGINE NDBCLUSTER;

該語句可能會出錯,出現ERROR 1064 (42000)語法錯誤的信息,原因是字符集的問題,先執(zhí)行:set character_set_client=latin1; 在執(zhí)行: 
1
添加新的undo log file:
復制代碼 代碼如下:

ALTER LOGFILE GROUP lg_cloudstor
ADD UNDOFILE 'cloudstor_undo_2.log'
INITIAL_SIZE 100M
ENGINE NDBCLUSTER;

2.5、創(chuàng)建tablespace
下來我們創(chuàng)建一個tablespace,創(chuàng)建tablespace必須指明一個log file group用于存儲undo log。還必須指定一個data file,tablespace創(chuàng)建完成后,你可以稍后添加更多的data file到tablespace。下來我們創(chuàng)建一個使用log file group為lg_cloudstor名為 ts_cloudstore的表空間,這個表空間包含cloudstore_data_1.dbf和cloudstore_data_2.dbf兩個data file,初始大小為100M(默認為128M),自動擴展為10M。
復制代碼 代碼如下:

CREATE TABLESPACE ts_cloudstore
ADD DATAFILE 'cloudstore_data_1.dbf'
USE LOGFILE GROUP lg_cloudstor
INITIAL_SIZE 100M
AUTOEXTEND_SIZE 10M
ENGINE NDBCLUSTER;

添加新的datafile
復制代碼 代碼如下:

ALTER TABLESPACE ts_cloudstore
ADD DATAFILE 'cloudstore_data_2.dbf'
INITIAL_SIZE 100M
AUTOEXTEND_SIZE 10M
ENGINE NDBCLUSTER;

下來我們可以看下新建的這些文件在物理磁盤上的數據文件:
2 
2.6、創(chuàng)建磁盤表
下來創(chuàng)建一個將沒有索引的列存儲在表空間ts_cloudstore的磁盤表。
復制代碼 代碼如下:

create table Disktable
(
id int auto_increment primary key,
c1 varchar(50) not null,
c2 varchar(30) default null,
c3 date default null,
index(c1)
)
TABLESPACE ts_cloudstore STORAGE DISK
ENGINE NDBCLUSTER;

這樣,列c2,c3的數據將會存儲在磁盤上,id和c1的數據仍會存儲在內存中,因為只有沒有索引的列才能存儲在磁盤上。創(chuàng)建完成后,就可以進行正常的數據操作了。
log file group,tablespaces,Disk Data tables需要按照一定的順序執(zhí)行,刪除這些的時候也是這樣,刪除規(guī)則為:有任何表空間使用log file group時,log file group不能刪除;表空間含有任何data files的時候,不能刪除表空間;Data files含有任何表殘余的時候,不能從表空間刪除數據文件。
2.7、刪除數據表
復制代碼 代碼如下:

drop table Disktable;

3 
2.8、刪除數據文件
當沒有表在關聯到表空間的時候,我們一個一個刪除data files。
復制代碼 代碼如下:

alter tablespace ts_cloudstore
drop datafile 'cloudstore_data_1.dbf'
engine ndbcluster;
alter tablespace ts_cloudstore
drop datafile 'cloudstore_data_2.dbf'
engine ndbcluster;

4 
2.9、刪除表空間
復制代碼 代碼如下:

drop tablespace ts_cloudstore
engine ndbcluster;

2.10、刪除日志組
復制代碼 代碼如下:

drop logfile group lg_cloudstor
engine ndbcluster;

下來查看物理文件是否已經刪除:
5 
可以在INFORMATION_SCHEMA數據庫中的FILES表中查看磁盤表的信息。
2.11、幾點注意的
在磁盤數據表中,TEXT和BLOB列的前256bytes存儲在內存中,剩余內容存儲在磁盤上;磁盤表中的每一行需要在內存中存儲8bytes的數據用于指向磁盤上的數據,使用--initial選項啟動集群時,不會刪除磁盤上的數據文件,必須手動刪除。

相關文章

  • CentOS下將MySQL 5.1升級到MySQL 5.5的步驟

    CentOS下將MySQL 5.1升級到MySQL 5.5的步驟

    這篇文章主要介紹了CentOS下將MySQL 5.1升級到MySQL 5.5的步驟,需要的朋友可以參考下
    2015-08-08
  • mysql聚集索引、輔助索引、覆蓋索引、聯合索引的使用

    mysql聚集索引、輔助索引、覆蓋索引、聯合索引的使用

    本文主要介紹了mysql聚集索引、輔助索引、覆蓋索引、聯合索引的使用,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • MySQL存儲引擎InnoDB與Myisam的區(qū)別分析

    MySQL存儲引擎InnoDB與Myisam的區(qū)別分析

    INNODB會支持一些關系數據庫的高級功能,如事務功能和行級鎖,MYISAM不支持。MYISAM的性能更優(yōu),占用的存儲空間少。所以,選擇何種存儲引擎,視具體應用而定。
    2022-12-12
  • Access數據庫的存儲上限

    Access數據庫的存儲上限

    Access數據庫的存儲上限...
    2006-09-09
  • MySQL刪除表數據的方法

    MySQL刪除表數據的方法

    這篇文章主要介紹了MySQL刪除表數據的方法,小編覺得還是挺不錯的,這里給大家分享一下,需要的朋友可以參考。
    2017-10-10
  • mysql中GROUP_CONCAT的使用方法實例分析

    mysql中GROUP_CONCAT的使用方法實例分析

    這篇文章主要介紹了mysql中GROUP_CONCAT的使用方法,結合實例形式分析了MySQL中GROUP_CONCAT合并查詢結果的相關操作技巧,需要的朋友可以參考下
    2020-02-02
  • MySQL普通索引和唯一索引的深入講解

    MySQL普通索引和唯一索引的深入講解

    這篇文章主要給大家介紹了關于MySQL普通索引和唯一索引的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-01-01
  • 深度探究:讓MySQL支撐億級流量的秘密!

    深度探究:讓MySQL支撐億級流量的秘密!

    MySQL是當前最為常用的關系型數據庫之一,它的出色性能和可靠性使得它成為了許多互聯網企業(yè)的首選,但是,如何讓MySQL支撐億級流量的挑戰(zhàn),成為了很多技術人員需要面對和解決的問題,需要的朋友可以參考下
    2023-10-10
  • MySQL Workbench導入excel數據的實現示例

    MySQL Workbench導入excel數據的實現示例

    本文主要介紹了MySQL Workbench導入excel數據的實現示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-01-01
  • Navicat連接MySQL錯誤描述分析

    Navicat連接MySQL錯誤描述分析

    最近遇到了一件非常棘手的問題,用Navicat連接MySQL總是出錯, 網上查閱了一下原因,最終找到解決方案,好吧,下面我就來回憶一下自己怎么處理這問題的,分享到腳本之家平臺需要的朋友參考下吧
    2021-06-06

最新評論