关于数据库

1.什么是数据库

数据库软件应称为DBMS(数据库管理系统),数据库是通过DBMS创建和操纵的容器,数据库可以是保存在硬件设备上的文件,但也可以不是,因为你并不直接访问数据库,你使用的是DBMS,他替你访问数据库。

2.表

表是某种特定特定类型数据的结构化清单。

储存在表中的数据是一种类型的数据或者一个清单,绝不应该把顾客的清单与订单存储在同一个数据库表中,这样将会使以后的检索和访问很困难,应该创建两个表,每个清单一个表。

最常使用的2 种存储引擎:
1. Myisam是Mysql的默认存储引擎,当create创建新表时,未指定新表的存储引擎时,默
认使用Myisam。
每个MyISAM在磁盘上存储成三个文件。文件名都和表名相同,扩展名分别是.frm
(存储表定义)、.MYD (MYData,存储数据)、.MYI (MYIndex,存储索引)。数据文件和
索引文件可以放置在不同的目录,平均分布io,获得更快的速度。
2. InnoDB 存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全。但是对比Myisam
的存储引擎,InnoDB 写的处理效率差一些并且会占用更多的磁盘空间以保留数据和索
引。

下面是常用存储引擎的适用环境:
1. MyISAM:
默认的MySQL 插件式存储引擎,它是在Web、数据仓储和其他应用环境下最常
使用的存储引擎之一
锁机制表锁页锁表锁行锁行锁
B 树索引支持支持支持支持
哈希索引支持支持
全文索引支持
集群索引支持
数据缓存支持支持
索引缓存支持支持支持
数据可压缩支持支持
空间使用低低N/A 高非常低
内存使用低低中等高低
批量插入的速度高高高低非常高
支持外键支持

2. InnoDB:用于事务处理应用程序,具有众多特性,包括ACID 事务支持。


3. Memory:将所有数据保存在RAM 中,在需要快速查找引用和其他类似数据的环境下,可
提供极快的访问。


4. Merge:允许MySQL DBA 或开发人员将一系列等同的MyISAM 表以逻辑方式组合在一起,
并作为1 个对象引用它们。对于诸如数据仓储等VLDB 环境十分适合。

选择数据类型的基本原则

1. MyISAM 数据存储引擎和数据列
MyISAM数据表,最好使用固定长度的数据列代替可变长度的数据列。
2. MEMORY存储引擎和数据列
MEMORY数据表目前都使用固定长度的数据行存储,因此无论使用CHAR或VARCHAR列都没
有关系。两者都是作为CHAR类型处理的。
3. InnoDB 存储引擎和数据列
建议使用VARCHAR类型
对于InnoDB数据表,内部的行存储格式没有区分固定长度和可变长度列(所有数据行
都使用指向数据列值的头指针),因此在本质上,使用固定长度的CHAR列不一定比使
用可变长度VARCHAR列简单。因而,主要的性能因素是数据行使用的存储总量。由于CHAR
平均占用的空间多于VARCHAR,因此使用VARCHAR来最小化需要处理的数据行的存储总
量和磁盘I/O是比较好的。

posted @ 2011-11-26 01:11  shangwen  阅读(130)  评论(0编辑  收藏  举报