您好,欢迎访问一九零五行业门户网

MySQL性能优化_MySQL

mysql实际上支持五种不同的表类型,有些人可能会对此感到不同寻常。这五种类型分别是bdb、heap、isam、merge以及myisam。其中bdb类型单独属于一类,称为“事务安全型”(transaction-safe),其余的表类型属于第二类,称为“非事务安全型”(non-transaction-safe)。下面我们详细介绍这些表类型。 
事务安全型 
▲bdb 
bdb全称是“berkeleydb”,它是mysql具有事务能力的表类型,由sleepycatsoftware开发。bdb表类型提供了mysql用户长久期盼的功能,即事务控制能力。在任何rdbms中,事务控制能力都是一种极其重要和宝贵的功能。事务控制能力使得我们能够确保一组命令确实已经全部执行成功,或者确保当任何一个命令出现错误时所有命令的执行结果均被回退。可以想象,在电子银行这类应用中事务控制能力是极其重要的。 
非事务安全型 
▲heap 
heap表是访问数据速度最快的mysql表,这是因为这类表使用保存在内存中的散列索引。但有极其重要的一点必须注意,如果mysql或者服务器崩溃,heap表中的数据将会丢失! 
▲isam 
isam表类型是myisam出现之前mysql的默认表类型,所以现在这种表类型是不推荐使用的,建议改用myisam表。 
▲merge 
merge是一种值得关注的新式表类型,在3.23.25版中提供。merge表实际上由一组同样的myisam表合并而成。之所以要把多个同样的表合并成一个,主要是出于性能上的考虑,因为它能够提高搜索速度、提高修复效率、节省磁盘空间。 
当前的merge表类型仍旧属于beta版本,但相信正式版本很快就会出现。 
▲myisam 
myisam表类型是mysql默认的表类型。myisam表类型以isam为基础,但增加了许多有用的扩展。下面是部分用myisam表类型取代isam表类型的原因: 
myisam表比isam表要小,因而占用资源更少。 
myisam表在不同的平台间二进制可移植。 
myisam还有其他许多优点。请访问http://www.mysql.com/doc/i/s/isam.html查看关于该表类型的完整说明。 
表的类型在创建表时指定。在下面这个例子中我们创建了一个heap类型的表:
mysql>createtableemail_addressestype=heap(
->emailchar(55)notnull,
->namechar(30)notnull,
->primarykey(email));
创建bdb表需要更多的配置参数,请参考http://www.mysql.com/doc/b/d/bdb_overview.html了解完整说明以及要使用bdb表应该做哪些准备。 
mysql4.0将增加两种新的表类型,即innobase和gemeni。关于这两种表类型现在能够得到的信息还不多。 
关于mysql表类型,有待学习的知识实在太多,本文简短的介绍不可能做到完整和详尽。建议访问mysql文档了解更详尽的信息。
正确的编译方法固然重要,但它只是提高mysql服务器性能工作的一部分。mysql服务器的许多参数会影响服务器的性能表现,而且我们可以把这些参数保存到配置文件,使得每次mysql服务器启动时这些参数都自动发挥作用。这个配置文件就是my.cnf。
mysql服务器提供了my.cnf文件的几个示例,它们可以在/usr/local/mysql/share/mysql/目录下找到,名字分别为my-small.cnf、my-medium.cnf、my-large.cnf以及my-huge.cnf。文件名字中关于规模的说明描述了该配置文件适用的系统类型。例如,如果运行mysql服务器的系统内存不多,而且mysql只是偶尔使用,那么使用my-small.cnf配置文件最为理想,这个配置文件告诉mysqlddaemon使用最少的系统资源。反之,如果mysql服务器用于支持一个大规模的在线商场,系统拥有2g的内存,那么使用mysql-huge.cnf最为合适。
其它类似信息

推荐信息