mysql 本身的性能影响因素:
mysql 最突出的地方就是它的插件式存储引擎
什么是插件式存储引擎:数据处理以及数据存储相分离(简单来说) 根据不同的引擎特征和存储方式来选择
第一层:客户端:通过mysql协议连接到mysqde的客户端l(php、java、c API、.net、ODBC、JDBC)
第二层:mysql 服务层 重点:所有跨存储引擎的功能都是在这一层中实现的(mysql 服务层 与存储引擎无关的特性) select 语句就是在这一层实现的,至于如何从文件中获得我们所要查询的数据,就是有下一层存储引擎层来实现
第三层:存储引擎层(mysql同其他数据库区别最大的地方)
最大特点:灵活!
对于开发人员来说就是mysql服务器接口
存储引擎是针对于表的而不是针对于库的(一个库中的不同表可以使用不同的存储引擎) 实际操作中不建议这样使用
每个archive表在磁盘上存在两个文件
.frm(存储表定义)
.arz(存储数据)
1.archive存储引擎支持insert、replace和select操作,但是不支持update和delete。
2.archive存储引擎支持blob、text等大字段类型。支持auto_increment自增列同时自增列可以不是唯一索引。
3.archive支持auto_increment列,但是不支持往auto_increment列插入一个小于当前最大的值的值。
4.archive不支持索引所以无法在archive表上创建主键、唯一索引、和一般的索引。
mysql常用的存储引擎---CSV
文件系统存储特点
INNODB 、MYISAM 引擎都是二级制二CSV是以文本方式存储在文件中
以表名为文件名
csv :存贮表的内容
csm:存储表的元数据如表的状态和数据量
frm:存储表的结构信息
特点:
不适合大表、不适合在线处理(web环境不适合使用csv存储引擎)
适用场景:
适合作为数据交换的中间表