~VAE0E269w8

jazka 的BLOG
用户名:jazka
文章数:142
评论数:195
访问量:851517
注册日期:
阅读量:5863
阅读量:12276
阅读量:410557
阅读量:1098715
51CTO推荐博文
&&& 最近在对开发的软件的服务器部分制作安装包,但服务器部分需要有mysql数据库的支持。因此,采用免安装版的mysql策略:将mysql数据库需要的文件在安装程序中进行设置和打包即可。但也遇到了很多问题,下面分三节进行总结。
中的innodb存储引擎,故在此只对innodb作一些介绍,详细内容可以参见mysql的官网说明。InnoDB概述
&&&&&& InnoDB给MySQL提供了具有提交,回滚和崩溃恢复能力的事务安全(ACID兼容)存储引擎。InnoDB锁定在行级并且也在SELECT语句提供一个Oracle风格一致的非锁定读。这些特色增加了多用户部署和性能。没有在InnoDB中扩大锁定的需要,因为在InnoDB中行级锁定适合非常小的空间。InnoDB也支持FOREIGN KEY强制。在SQL查询中,你可以自由地将InnoDB类型的表与其它MySQL的表的类型混合起来,甚至在同一个查询中也可以混合。
&&&&&& InnoDB是为处理巨大数据量时的最大性能设计。它的CPU效率可能是任何其它基于磁盘的关系数据库引擎所不能匹敌的。
&&&&&& InnoDB存储引擎被完全与MySQL服务器整合,InnoDB存储引擎为在主内存中缓存数据和索引而维持它自己的缓冲池。InnoDB存储它的表&索引在一个表空间中,表空间可以包含数个文件(或原始磁盘分区)。这与MyISAM表不同,比如在MyISAM表中每个表被存在分离的文件中。InnoDB 表可以是任何尺寸,即使在文件尺寸被限制为2GB的操作系统上。
&&&&&& InnoDB默认地被包含在MySQL二进制分发中。Windows Essentials installer使InnoDB成为Windows上MySQL的默认表。
&&&&&& InnoDB被用来在众多需要高性能的大型数据库站点上产生。著名的Internet新闻站点Slashdot.org运行在InnoDB上。Mytrix, Inc.在InnoDB上存储超过1TB的数据,还有一些其它站点在InnoDB上处理平均每秒800次插入/更新的负荷。
InnoDB配置
&&&&&& InnoDB存储引擎是默认地被允许的。如果你不想用InnoDB表,你可以添加skip-innodb选项到MySQL选项文件。
&&&&&& 被InnoDB存储引擎管理的两个重要的基于磁盘的资源是InnoDB表空间数据文件和它的日志文件。
&&&&&& 如果你指定无InnoDB配置选项,MySQL将在MySQL数据目录下创建一个名为ibdata1的10MB大小的自动扩展数据文件,以及两个名为ib_logfile0和ib_logfile1的5MB大小的日志文件。
&&&&&& 注释:InnoDB给MySQL提供具有提交,回滚和崩溃恢复能力的事务安全(ACID兼容)存储引擎。如果拟运行的操作系统和硬件不能如广告说的那样运行,InnoDB就不能实现如上能力。许多操作系统或磁盘子系统可能为改善性能而延迟或记录写操作。在一些操作系统上,就是系统调用(fsync()) 也要等着,直到所有未写入已被刷新文件的数据在被刷新到稳定内存之前可以确实返回了。因为这个,操作系统崩溃或掉电可能损坏当前提交的数据,或者在最坏的 情况,因为写操作已被记录了,甚至破坏了数据库。如果数据完整性对你很重要,你应该在用任何程序于生产中之前做一些“pull-the-plug”测试。Mac OS X 10.3 及以后版本,InnoDB使用一个特别的fcntl()文件刷新方法。在Linux下,建议禁止回写缓存。
&&&&&& 在ATAPI硬盘上,一个类似hdparm -W0 /dev/hda命令可能起作用。小心某些驱动器或者磁盘控制器可能不能禁止回写缓存。
&&&&&& 注释:要获得好的性能,你应该如下面例子所讨论那样,明确提供InnoDB参数。自然地,你应该编辑设置来适合你的硬件和要求。
&&&&&& 要建立InnoDB表空间文件,在<font face=f选项文件里的[mysqld]节里使用innodb_data_file_path选项。在Windows上,你可以替代地使用my.ini文件。innodb_data_file_path的值应该为一个或多个数据文件规格的列表。如果你命名一个以上的数据文件,用 分号(‘;’)分隔它们:
&&&&&& innodb_data_file_path=datafile_spec1[;datafile_spec2]...例如:把明确创建的具有相同特征的表空间作为默认设置的设置操作如下:
&&&&&& [mysqld]innodb_data_file_path=ibdata1:10M:autoextend这个设置配置一个可扩展大小的尺寸为10MB的单独文件,名为ibdata1。没有给出文件的位置,所以默认的是在MySQL的数据目录内。
&&&&&& 尺寸大小用M或者G后缀来指定说明单位是MB或者GB。
&&&&&& 一个表空间,它在数据目录里包含一个名为ibdata1的固定尺寸50MB的数据文件和一个名为ibdata2大小为50MB的自动扩展文件,其可以像这样被配置:
&&&&&& [mysqld]innodb_data_file_path=ibdata1:50M;ibdata2:50M:autoextend一个指定数据文件的完全后缀包括文件名,它的尺寸和数个可选属性:
&&&&&& file_name:file_size[:autoextend[:max:max_file_size]]autoextend属性和后面跟着的属性只可被用来对innodb_data_file_path行里最后一个数据文件。
&&&&&& 如果你对最后的数据文件指定autoextend选项。如果数据文件耗尽了表空间中的自由空间,InnoDB就扩展数据文件。扩展的幅度是每次8MB。
&&&&&& 如果磁盘已满,你可能想要把其它数据添加到另一个硬盘上。重新配置一个已存在表空间的指令见15.2.7节,“添加和删除InnoDB数据和日志文件”。
&&&&&& InnoDB并不感知最大文件尺寸,所以要小心文件系统,在那上面最大的文件尺寸是2GB。要为一个自动扩展数据文件指定最大尺寸,请使用max属性。下列配置允许ibdata1涨到极限的500MB:
&&&&&& [mysqld]innodb_data_file_path=ibdata1:10M:autoextend:max:500MInnoDB默认地在MySQL数据目录创建表空间文件。要明确指定一个位置,请使用innodb_data_home_dir选项。比如,要使用两个名为ibdata1和ibdata2的文件,但是要把他们创建到/ibdata,像如下一样配置InnoDB:
[mysqld] innodb_data_home_dir=/ibdata innodb_data_file_path=ibdata1:50M;ibdata2:50M:autoextend
&&& 注释:InnoDB不创建目录,所以在启动服务器之前请确认/ibdata目录的确存在。这对你配置的任何日志文件目录来说也是真实的。使用Unix或DOS的mkdir命令来创建任何必需的目录。
&&&&&& 通过把innodb_data_home_dir的值原原本本地部署到数据文件名,并在需要的地方添加斜杠或反斜杠,InnoDB为每个数据文件形成目录路径。如果innodb_data_home_dir选项根本没有在<font face=f中提到,默认值是“dot”目录 ./,这意思是MySQL数据目录。
2GB。数据文件的合并尺寸必须至少10MB。
&&&&&& 当你第一次创建一个InnoDB表空间,最好从命令行来启动MySQL服务器。InnoDB然后把数据库创建的信息打印到屏幕,所以你可以看见正在发生什么。比如,在Windows上,如果mysqld-max位于C:\mysql\bin,你可以如下来启动它:C:\& C:\mysql\bin\mysqld-max --console如果你不发送服务器输出到屏幕上,请检查服务器的错误日志来看在启动过程中InnoDB打印了什么。本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)mysql更改引擎(InnoDB,MyISAM)的方法
投稿:shichen2014
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了mysql更改引擎(InnoDB,MyISAM)的方法,实例讲述了比较常见的几种更改引擎的方法,非常具有实用价值,需要的朋友可以参考下
本文实例讲述了mysql更改引擎(InnoDB,MyISAM)的方法,分享给大家供大家参考。具体实现方法如下:
mysql默认的数据库引擎是MyISAM,不支持事务和外键,也可使用支持事务和外键的InnoDB。
查看当前数据库的所支持的数据库引擎以及默认数据库引擎
数据库支持的引擎和默认数据库引擎代码:
更改方式1:修改配置文件my.ini
我将my-small.ini另存为my.ini,在[mysqld]最后添加为上default-storage-engine=InnoDB,重启服务,数据库默认的引擎修改为InnoDB
更改方式2:在建表的时候指定或者建完表修改
Mysql代码 :
--建表的时候指定&&
代码如下:create table mytbl(&&
&&& id int primary key,&&
&&& name varchar(50)&&
)type=MyISAM;
--建完表后修改&&
代码如下:alter table mytbl2 type = InnoDB;
--查看修改结果(mytest为表所在的database名字)&&
代码如下:show tabl
--或者使用
代码如下:show create table table_name
希望本文所述对大家的MySQL数据库程序设计有所帮助。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具查看: 1273|回复: 2
大家都怎么设置innodb提交,自动提交还是非自动提交?
论坛徽章:13
大家都怎么设置innodb提交,自动提交还是非自动提交? 各有什么好处?
论坛徽章:52
本帖最后由 jinguanding 于
19:22 编辑
1.自动提交,则可以规避 开发人员忘记写COMMIT命令的问题;
2.就算你想用事务,则可以使用START TRANSACTION&&的模式~~(注:不要用SET AUTOCOMMIT=0方式,有BUG和性能的问题)
3.不写,就是可能导致锁等待增加,和部分死锁的发生;
4.AUTOCOMMIT=0,就是用户单独命令 或方式操作的时候,更新错了,但是没COMMIT,可以执行ROLLBACK回滚
论坛徽章:13
jinguanding 发表于
1.自动提交,则可以规避 开发人员忘记写COMMIT命令的问题;
2.就算你想用事务,则可以使用START TRANSAC ...
恩,理解,多谢了!
itpub.net All Right Reserved. 北京皓辰网域网络信息技术有限公司版权所有    
 北京市公安局海淀分局网监中心备案编号: 广播电视节目制作经营许可证:编号(京)字第1149号}

我要回帖

更多关于 帕萨特w8 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信