MySQL数据库CSV存储引擎的使用(转)
来源:互联网 发布:电脑摄像头监视器软件 编辑:程序博客网 时间:2024/05/24 16:16
MySQL有很多存储引擎,这里并不过多介绍,今天主要是简单说说CSV存储引擎,个人认为CSV是MYSQL中相对比较简单而且方便的存储引擎了,说它简单是因为其创建和使用简单,说它方便,是因为它的数据存储文件格式就是通用的CSV文件格式,这种格式很普遍,很多软件都支持,当然应用的面也比较窄,主要用于方便输出数据为通用的CSV报表格式的时候,通常情况下还是用的比较少。
下边具体说说该存储引擎的使用:
1.MySQL对CSV存储引擎的支持。
不是所有的MySQL版本都支持CSV存储引擎,只有在MYSQL 5.0及以上版本才支持,而且windows下的版本在5.1版本才知道。
如果当前版本不支持CSV存储引擎,而在创建使用CSV存储引擎的表时,会提示如下错误:
mysql> create table csv_test(id bigint not null,name varchar(100) not null)engine=csv
-> ;
ERROR 1289 (HY000): The 'CSV' feature is disabled; you need MySQL built with 'CSV' to have it working.
这是本人在windows 5.0.22版本下测试时遇到的错误信息。换个windows下的5.1以上的版本就OK了。
另外,也可以通过show engines命令来检查该版本是否支持CSV存储引擎,也可以查看其支持哪些存储引擎,如下:
1)windows 下 mysql 5.0.22版本的show engines命令执行情况:
mysql> show engines;
+------------+---------+----------------------------------------------------------------+
| Engine | Support | Comment |
+------------+---------+----------------------------------------------------------------+
| MyISAM | YES | Default engine as of MySQL 3.23 with great performance |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables |
| InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys |
| BerkeleyDB | NO | Supports transactions and page-level locking |
| BLACKHOLE | NO | /dev/null storage engine (anything you write to it disappears) |
| EXAMPLE | NO | Example storage engine |
| ARCHIVE | YES | Archive storage engine |
| CSV | NO | CSV storage engine |
| ndbcluster | NO | Clustered, fault-tolerant, memory-based tables |
| FEDERATED | NO | Federated MySQL storage engine |
| MRG_MYISAM | YES | Collection of identical MyISAM tables |
| ISAM | NO | Obsolete storage engine |
+------------+---------+----------------------------------------------------------------+
12 rows in set (0.00 sec)
测试结果发现,该版本并不支持CSV存储引擎,而且,总共支持MyISAM,MEMORY,InnoDB,ARCHIVE,MRG_MYISAM这5种存储引擎。
2)windows 下 mysql 5.4.3版本的show engines命令执行情况:
mysql> show engines;
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
| MyISAM | YES | Default engine as of MySQL 3.23 with great performance | NO | NO | NO |
| CSV | YES | CSV storage engine | NO | NO | NO |
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |
| FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL |
| InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| ARCHIVE | YES | Archive storage engine | NO | NO | NO |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
8 rows in set (0.02 sec)
发现这个版本就支持CSV,而且支持MyISAM,CSV,MRG_MYISAM,BLACKHOLE,InnoDB,ARCHIVE,MEMORY这7种存储引擎。
2.CSV存储引擎的使用
1)先建一测试表,用CSV存储引擎,如下:
mysql> create table csv_table(id bigint not null,name varchar(100) not null)engine=csv;
Query OK, 0 rows affected (0.11 sec)
2)观察生成的表相关文件:
发现生成了3个文件,如下:
csv_table.frm csv_table.csv csv_table.csm
csv_table.frm 这个文件很清楚,保存表的元数据信息,任何一个MYSQL存储引擎都有这个表文件。
csv_table.csv 这个是数据文件,保存表中的数据,用CSV格式保存。
csv_table.csm 这个文件究竟用途如何,还不太清楚,研究中。。。
3)向表中插入2条数据,代码如下:
mysql> insert into csv_table values(1,'aa');
Query OK, 1 row affected (0.05 sec)
mysql> insert into csv_table values(2,'bb');
Query OK, 1 row affected (0.00 sec)
4)打开csv_table.csv,观察其数据:
1,"aa"
2,"bb"
大家都知道,该文件可以直接用EXCEL打开。
3. 修改数据文件csv_table.csv
使用CSV存储引擎的一个重要好处是,可以直接通过修改文件,向数据库中添加更新数据。现在打开csv_table.csv文件,修改内容为如下:
1,"aa"
2,"bb"
3,"cc"
4,"dd"
点保存,却发现无法保存,系统提示“另一程序正在使用此文件,进程无法访问”,这个程序就是MYSQL,MYSQL在运行期间,锁定了该文件, 因此必须停止了MYSQL才能修改。
于是停止MYSQL服务,然后编辑后保存,OK。
重新启动MYSQL服务,
通过select语句查看该表数据,如下:
mysql> select * from csv_table;
+----+------+
| id | name |
+----+------+
| 1 | aa |
| 2 | bb |
| 3 | cc |
| 4 | dd |
+----+------+
4 rows in set (0.00 sec)
OK,数据已经更新,非常方便。
4.CSV存储引擎的缺点
CSV存储引擎实际上操作维护的是一个标准的CSV文件,因此不支持索引等功能。
本文来自CSDN博客
- MySQL数据库CSV存储引擎的使用(转)
- 使用mysql 的 csv 引擎
- Mysql的存储引擎之:CSV存储引擎
- mysql存储引擎之CSV
- 【MySQL】存储引擎总结(正确的使用存储引擎)
- Mysql数据库的存储引擎
- Mysql数据库的存储引擎
- MySQL数据库(存储引擎)
- mysql数据库应用(三)----数据库的存储引擎
- MySQL常用存储引擎之CSV
- Mysql数据库存储引擎
- MySQL数据库存储引擎
- MySQL数据库存储引擎
- Mysql数据库存储引擎
- Mysql数据库存储引擎
- MySQL 数据库存储引擎
- 【数据库】MySQL存储引擎
- MySQL数据库存储引擎
- 判断Java空字符串三种方法的比较
- unicode字符范围(包括中文、日语、韩文和各种特殊字符集)
- Lua中用Split函数分割字符串
- 程序中参数的检查
- Thinkphp上传文件失败原因--Public目录限制
- MySQL数据库CSV存储引擎的使用(转)
- 从一到十九共十九个数,打印出利用这十九个整数任意多个相加等于20所以可能性,每个数字在同一个算式中只出现一次.
- MySQL储引擎INNODB,MyISAM等的区别
- Java按照不同方式读取文件
- Java读取xml文件(JDOM/XPATH编程指南)
- Mysql 存储引擎
- PHP 内存回收机制(GC)【转载】
- PHP的双向队列
- PHP实现中文字串截取无乱码