MySQL表类型简单对比
MySQL为我们提供了很多表类型供选择,有MyISAM、ISAM、HEAP、BerkeleyDB、InnoDB,MERGE表类型每一种表类型都有其自己的属性和优点。下面我们来简单的讨论一下。
MyISAM表类型:
MyISAM
表(TYPE=MYISAM)是ISAM类型的一种延伸,具有很多优化和增强的特性。是MySQL的默认表类型。MyISAM优化了压缩比例和速度,并且
可以很方便的在不同的操作系统和平台之间进行移植。MyISAM支持大表文件(大于4G)允许对BLOB和TEXT列进行索引支持使用键前缀和使用完整的
键搜索记录表数据和表索引文件可以依存在不同的位置,甚至是不同的文件系统中。即使是具有相当多的插入、更新和删除操作的表,智能防碎片逻辑也能保证其高
性能的协作性。
ISAM表类型:
ISAM表(TYPE=ISAM)和MyISAM表相似,但是其没有MyISAM格式的很多增强性能,因而不能像MyISAM类型那样提供很好的优化和执行效率。因为ISAM索引不能被压缩
,它比在MyISAM中的相同索引战胜较少的系统资源。ISAM索引需要较多的磁盘空间
,这对于像本站的这种小型环境很是问题。呵呵。
和MyISAM一样,ISAM表可以是固定长度的,也可以是可变长度的,但是其格式的最大键长度比较小,ISAM格式处理的表不能大于4G,而且表不能在不同的平台间移植
。另外,ISAM表容易分裂,这会降低查询速度,对数据/索引的压缩产生限制
。
HELP表类型:
HEAP表(TYPE=HEAP)是内存中的表,它使用能够比较快速的散列索引(当运行INSERT查询时,独立评价指出HEAP表最少比MyISAM表快30%),因此,对于临时表可以优化。经和MyISAM或ISAM表的访问规则和使用方式一样。存储在里面的数据只在MySQL服务器的生命期内存在
,如果MySQL服务器崩溃或者被关掉,都会使其中的数据消失不见。虽然HEAP表具有性能方面的好处,但是由于它的临时性和一些其他功能限制,在实际中不可能经常使用。
HEAP表的大小只受到系统上可用内存的限制,MySQL是很聪明的,其具有内建保护来阻止无意识地使用所有可用内存。所以我们不用担心内存会被HEAP表用尽。HEAP表不支持BLOB或TEXT列,不能超过max_heap_table_size变量指定的大小。
BerkeleyDB表类型:
BerkeleyDB
表(TYPE=BDB)是为了满足MySQL开发者对事务安全表日益增长的需求而发展起来的。BerkeleyDB表具有很多有趣的鹅,包括提交和回滚操
作、多用户并发访问、检查点、次要索引、通过日志恢复崩溃、连续地和键控地访问数据等,这便利复杂的、基于事务的SQL有了可行的选择。
不过BerkeleyDB表也有一些
相关文档:
第一次采用MySQL作为业务应用的数据库,由于经验不够丰富,在安装数据库的时候选择了GB2312编码。
起先用的也算得心应手,然而后续发现了生僻字不能显示的情况,把我搞得焦头烂额。经过好几天的摸索、
学习,终于把问题解决了。记下解决步骤,与跟我一样的新手分享。
步骤一: 分析出现乱码的原因
由于GB2312字符集只收 ......
通常我习惯将mysql数据库设置默认编码为utf-8,这就有一个问题,在windows客户端中中文显示乱码,因为windows默认编码为gb2312或ansi。多方查找终于解决,在windows客户端登入mysql
输入
set NAMES GB2312;
小命令,大作用啊。 ......
1.下载 MySQL 6.0免安装版
http://dev.mysql.com/get/Downloads/MySQL-6.0/mysql-noinstall-6.0.9-alpha-win32.zip/from/pick#mirrors
2.将 MySQL6.0 解压到待安装目录(自己决定放到哪)。解压后默认文件夹名称为:mysql-6.0.9-alpha-win32(当然可以自己更改),然后在环境变量中设置MYSQL_HOME(这样,以后可以用%MYSQL ......
[原创] MySQL数据库存储引擎和分支现状
在MySQL经历了2008年Sun的收购和2009年Oracle收购Sun的过程中,基本处于停滞发展的情况,在可以预见的未来,MySQL是肯定会被Oracle搁置并且逐步雪藏消灭掉的。MySQL随着相应的各主创和内部开发人员的离去,缔造了各个不同的引擎和分支,让MySQL有希望继续发扬光大起来。
本 ......
在SentOS 5中:
>>yum install mysql
安装完毕后,
>>mysql
error:Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'(2)";
今天服务器遇到了一个很熟悉的问题
输入
#mysql -u root -p
ERROR 2002 (HY000):Can't connect to local MySQL server
  ......