posts - 28,  comments - 15,  trackbacks - 0

       InnoDB 给 MySQL 提供了具有事务(commit)、回滚(rollback)和崩溃修复能力(crash recovery capabilities)的事务安全(transaction-safe (ACID compliant))型表。InnoDB 提供了行锁(locking on row level),提供与 Oracle 类型一致的不加锁读取(non-locking read in SELECTs)。这些特性均提高了多用户并发操作的性能表现。在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)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航:
 
<2006年4月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

常用链接

留言簿(1)

随笔分类(17)

随笔档案(28)

文章分类(30)

文章档案(30)

相册

收藏夹(2)

hibernate

java基础

mysql

xml

关注

压力测试

算法

最新随笔

搜索

  •  

积分与排名

  • 积分 - 95541
  • 排名 - 602

最新评论

阅读排行榜

评论排行榜