Author: admin

InnoDB 作为默认存储引擎(从mysql-5.5.5开始)

InnoDB as Default Storage Engine
从mysql-5.5.5开始,InnoDB作为默认存储引擎,InnoDB作为支持事务的存储引擎,拥有相关的RDBMS特性:包括ACID事务支持,参考完整性(外健),灾难恢复能力等特性。
同时作为维护mysql内部结构的mysql和information_schema两个databases中的表,依然使用MyISAM存储引擎,而且不能被更改为InnoDB.
1.InnoDB table优点
硬件故障导致的server crash(比如停电),在下次重起database会自动恢复。
由InnoDB buffer pool 负责cache被访问的表和索引数据,直接在内存中进行处理,根据合理算法来保持热点块(hot)保留在内存中,极大地提高访问效率,减少I/O。
使用外健来实现参考完整性,实现数据的逻辑分割,同时还可以实现关联更新。
如果数据损坏,checksum机制能够在你使用时候提醒你这些受损的数据。
建议所有的表都有主健(频繁使用的field上或者auto_increment field上创建),这将极大提高基于where条件为主健(primary key)上的查询性能,包括order by , group by 等。
提供change buffering自动优化机制来优化诸如Insert,Update,Delete等操作;InnoDb能允许同一表上的读,写操作,还能cache 改变数据来减少I/O.

2.InnoDB table最佳处理方法
给每个InnoDB表指定主健
为提高组合查询性能,定义外健在join columns上,并且定义为相同数据类型,外健能实现因主表更新而关联更新子表,并且阻止子表的插入新数据,当这些新数据并不在主表存在时。
改变autocommit默认方式为不自动提交,减少提交次数过多带来的性能影响;可以由start transaction and commit来以"逻辑事务处理"等为单位来控制提交次数。
停止使用lock table语句,InnoDB能处理同一表上的读写并发sessions,并且不存在可靠性和性能损失。
Enable …

    

InnoDB和MyISAM区别

InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定。以前MySQL 默认的存储引擎是MYISAM,从5.5.5之后就改用InnoDB了。它们的基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持已经外部键等高级数据库功能。
MyIASM是IASM表的新版本,有如下扩展:
·二进制层次的可移植性。
·NULL列索引。
·对变长行比ISAM表有更少的碎片。
·支持大文件。
·更好的索引压缩。
·更好的键吗统计分布。
·更好和更快的auto_increment处理。…

    

11 个重要的数据库设计规则

英文原文:c-sharpcorner,翻译:oschina

简介:在您开始阅读这篇文章之前,我得明确地告诉您,我并不是一个数据库设计领域的大师。以下列出的 11 点是我对自己在平时项目实践和阅读中学习到的经验总结出来的个人见解。我个人认为它们对我的数据库设计提供了很大的帮助。实属一家之言,欢迎拍砖 : )

我之所以写下这篇这么完整的文章是因为,很多开发者一参与到数据库设计,就会很自然地把 “三范式” 当作银弹一样来使用。他们往往认为遵循这个规范就是数据库设计的唯一标准。由于这种心态,他们往往尽管一路碰壁也会坚持把项目做下去。…

从菜鸟到专家的五步编程语言学习法

我已经从事10年的技术培训工作,一直教人如何编程。这些人包括学生、已经走上工作岗位的开发人员。在多年的工作生涯中,我注意到一些正确/错误学习编程语言的方式,下面我分享一些正确学习语言的5种技巧,虽然它们看起来都很浅显,但只要你认真执行,绝对会有很大效果和提升。…

PHP正则表达式教程

1、入门简介

 

简单的说,正则表达式是一种可以用于模式匹配和替换的强有力的工具,主要用于字符串的模式分割、匹配、查找及替换操作。我们可以在几乎所有的基于UNIX系统的工具中找到正则表达式的身影,例如,vi编辑器,PerlPHP脚本语言,以及awksed shell程序等。此外,象JavaScript这种客户端的脚本语言也提供了对正则表达式的支持。由此可见,正则表达式已经超出了某种语言或某个系统的局限,成为人们广为接受的概念和功能。…