MySQL儲存引擎之CSV

2021-09-25 12:10:03 字數 2356 閱讀 5766

csv儲存引擎可以將csv檔案作為mysql的表進行處理。儲存格式就是普通的csv檔案。

資料以文字方式儲存在檔案中(innodb則是二進位制)

.csv檔案儲存表內容

.csm檔案儲存表的元資料如表狀態和資料量

.frm檔案儲存表結構資訊

例項:

我們新建乙個csv檔案,但是不指定not null 

mysql [test]> create table mycsv(id int,c1 varchar(10),c2 char(20)) engine=csv;

error 1178 (42000): the storage engine for the table doesn't support nullable columns

我們指定各列不為空

mysql [test]> create table  mycsv(id  int not null ,c1 varchar(10) not null,c2 char(20) not null) engine=csv;

query ok, 0 rows affected (0.02 sec)

向表中插入資料

mysql [test]> insert into mycsv values ( 1,'aaa','bbb'),(2,'ccc','ddd') ;

query ok, 2 rows affected (0.01 sec)

records: 2 duplicates: 0 warnings: 0

mysql [test]> select * from mycsv;

+----+-----+-----+

| id | c1 | c2 |

+----+-----+-----+

| 1 | aaa | bbb |

| 2 | ccc | ddd |

+----+-----+-----+

2 rows in set (0.01 sec)

我們檢視檔案系統下的檔案

[root@wangerxiao ~]# cd /usr/local/mysql/var/test 

[root@wangerxiao test]# ls -lh mycsv*

-rw-r----- 1 mysql mysql 35 mar 17 10:36 mycsv.csm

-rw-r----- 1 mysql mysql 28 mar 17 10:36 mycsv.csv

-rw-r----- 1 mysql mysql 8.5k mar 17 10:35 mycsv.frm

檢視csv檔案

[root@wangerxiao test]# cat mycsv.csv

1,"aaa","bbb"

2,"ccc","ddd"

我們發現就是文字檔案

1 1,"aaa","bbb"

2 2,"ccc","ddd"

3 3,"eee","fff"

然後在資料庫中檢視表

首先我們重新整理資料表

mysql [test]> flush tables;

query ok, 0 rows affected (0.05 sec)

檢視資料表

mysql [test]> select * from  mycsv;

+----+-----+-----+

| id | c1 | c2 |

+----+-----+-----+

| 1 | aaa | bbb |

| 2 | ccc | ddd |

| 3 | eee | fff |

+----+-----+-----+

3 rows in set (0.00 sec)

我們發現在檔案中修改的資料已經新增到了資料庫

我們看看如果增加索引會發生什麼

mysql [test]> create index idx_id on mycsv(id);

error 1069 (42000): too many keys specified; max 0 keys allowed

證明不支援索引

適合做為資料交換的中間表(能夠在伺服器執行的時候,拷貝和拷出檔案,可以將電子**儲存為csv檔案再拷貝到mysql資料目錄下,就能夠在資料庫中開啟和使用。同樣,如果將資料寫入到csv檔案資料表中,其它web程式也可以迅速讀取到資料。

Mysql 儲存引擎之 MyISAM儲存引擎

myisam是預設儲存引擎。每個myisam在磁碟上儲存成三個檔案。frm檔案儲存表定義 myd檔案儲存資料 myi檔案儲存索引。要明確表示你想要用乙個myisam 請用engine表選項指出來 create table test myisam id int engine myisam 2 如下是m...

MySQL之儲存引擎

這幾天研習mysql資料庫的儲存引擎,以便能更深層次的掌握mysql這個優秀的資料庫。首先,mysql資料庫獨有的外掛程式式儲存引擎架構使得它有別於其他任何資料庫,其中不同的儲存引擎有著完全不同的功能和效能。mysql表儲存引擎主要有 innodb儲存引擎,myisam儲存引擎,ndb儲存引擎,me...

MySQL之儲存引擎

1.檢視某個資料表的命令 show create table tbl name mysql可以將資料以不同的技術儲存在檔案 記憶體 中,這種技術就稱為儲存引擎。每一種儲存引擎使用不同的儲存機制 索引技巧 鎖定水平,最終提供廣泛且不同的功能。mysql支援的儲存引擎有 myisam 適用於事物的處理不...