前两个月一直在写一个内部的数据管理系统,遇到了不少问题。在解决问题的同时,收获也不少,难得今天又空,把这些知识总结出来,同时也是巩固和学习一下。
面对将近十多万行的数据,用普通的pc机当服务器作处理。对数据库设计,对查询语句优化的要求还是有点高的。没有想到mysql的存储引擎却能解决部分速度问题。。
因为所使用的功能不同,所以需要不同的存储引擎作处理。比如有事务管理的需要,就要选用,支持事务的存储引擎。
查看数据库存储引擎的方式
mysql> show engines; // 看你的mysql现在已提供什么存储引擎:
mysql> show variables like '%storage_engine%';//看你的mysql当前默认的存储引擎:
mysql> show create table 表名 ;//在显示结果里参数engine后面的就表示该表当前用的存储
可能用到的一些存储引擎有下列几个:
myisam : 最为常用,拥有较高的插入,查询速度,但不支持事务
innodb:事务性数据库的主要引擎,支持事务
Merge :(聚合存储引擎)将一定数量的MyISAM表联合而成一个整体,在超大规模数据存储时很有用
archive:归档存储引擎,适合存储大量的独立的,作为历史记录的数据,不支持大量的查询,插入速度高,但是对查询支持较差
federated:将不同的mysql服务器联合起来,逻辑上组成一个完整的数据库,非常适合分布式应用,
csv:逻辑上由逗号分隔数据的存储引擎
memory:将所有数据保存在RAM中,在需要快速查找引用和其他类似数据的环境下,可提供极快的访问。