InnoDB 给 MySQL 提供了具有事务(commit)、回滚(rollback)和崩溃修复能力(crash recovery capabilities)的事务安全(transaction-safe (ACID
compliant))型表。InnoDB 提供了行锁(locking on row level),提供与 Oracle 类型一致的不加锁读取(non-locking read in SELECT
s)。这些特性均提高了多用户并发操作的性能表现。在InnoDB表中不需要扩大锁定(lock escalation),因为 InnoDB 的列锁定(row level locks)适宜非常小的空间。InnoDB 是 MySQL 上第一个提供外键约束(FOREIGN KEY
constraints)的表引擎。
要想正常的使用InnoDB带给我们的好处,首先要建立InnoDB数据库。示例采用的mysql版本是4.0.12,这个版本属于mysql的beta版本。假设你的mysql已经安装完毕,并且采用的是win xp操作系统,接下来我们就要创建InnoDB数据库。
当创建一个 InnoDB 数据库时最好以命令行方式来运行 MySQL 服务 mysqld ,而不是从 safe_mysqld 或 Windows 服务。当从命令行方式运行服务时可以看到建立过程。
步骤1:通过 MS-DOS的 NET STOP MySQL
命令停止mysql服务。
步骤2:修改c:/windows/my.ini文件,主要是设置Innodb的参数。从设置最小的角度考虑,可以
设置一下几项:
innodb_data_home_dir /*innodb数据库数据文件目录*/
innodb_data_file_path /*数据文件名称及大小*/
innodb_buffer_pool_size /*缓冲池的大小,一般设置为主存的50%-80%*/
innodb_additional_mem_pool_size /**/
innodb_log_file_size /*日志文件的大小,一般设置为主存的25%*/
innodb_log_buffer_size /**/
innodb_flush_log_at_trx_commit /*事务*/
具体设置如下:
[mysqld]
basedir=C:/mysql
#bind-address=192.168.1.8
datadir=C:/mysql/data
innodb_data_file_path = /ibdata2:100M:autoextend:max:2000M
set-variable = innodb_buffer_pool_size=200M
set-variable = innodb_additional_mem_pool_size=15M
set-variable = innodb_log_file_size=50M
set-variable = innodb_log_buffer_size=10M
innodb_flush_log_at_trx_commit=1
#language=C:/mysql/share/your language directory
#slow query log#=
#tmpdir#=
#port=3306
#set-variable=key_buffer=16M
[WinMySQLadmin]
Server=C:/mysql/bin/mysqld-nt.exe
user=zhangxl
password=zhangxl
解释:
ibdata2为自定义的数据文件名称。在默认情况下,系统将自动创建ibdata0和ibdata1,这两个文件是mysql安装后自带的。因此,如果用户想以这两个文件作为设置的数据文件,首先要删除他们以及其他的3个日志文件,否则在使用mysql-max --console时会提示数据库创建失败。提醒一点的是,在删除文件之前一定要先停止mysql服务,在dos下执行net stop mysql即可,然后备份数据文件和日志文件,防止mysql启动失败,以备恢复。
InnoDB 不会自己建立目录,必须自己使用操作系统命令建立相应的目录。检查你的 MySQL 服务程序在 datadir
目录里 有足够的权限建立文件。
这里没有设置innodb_data_home_dir参数,在默认情况下,mysql自动会指向/mysql/data目录 ,innodb_data_file_path 可以设置多个数据库文件,在本例中只设置一个,同时还可以通过autoextend属性把数据文件设为可扩展的,通过max属性设置最后一个数据文件的最大值,在windows下一般为2G。
步骤3:通过命令net start mysql启动mysql,然后执行命令mysql-max --console命令。
执行完上一步操作后,进入mysql安装目录的/data目录下可以看到生成的数据文件和日志文件。
参考:
http://dev.mysql.com/doc/refman/5.0/en/error-creating-innodb.html
http://man.chinaunix.net/database/mysql/inonodb_zh/
posted on 2006-04-11 00:13
zhangxl 阅读(2629)
评论(0) 编辑 收藏