MYSQL网页编程之MySQL 4.0 晋级到5.0
由于在MySQL中有如此众多的额外功能可选,诸如存储引擎等,你可以选择最适合你公司的一个,或者尝试选用多个引擎。MySQL开始非常小巧,但是可以随着公司的成长而不断地变强大。 因为必要,从4.0间接晋级到5.0,检察了一下changelog,发明次要有以下变更:1、从4.0到4.1的次要变更
假如在4.1.0到4.1.3版本的MySQL中创立了包括TIMESTAMP字段的InnoDB 表。则在晋级到4.1.4及更高时必要重修表,由于存储格局产生变更了字符串依据尺度SQL来对照:对照之前不删除开端的空格,之前用开端空格扩大了对照短的字符串。如今的了局是
a>a ,之前则不如许。能够用mysqlcheck来反省一下数据表TIMESTAMP前往YYYY-MM-DDHH:MM:SS格局的字符串。在MySQL
4.0中,能够增添选项--new来取得MySQL4.1中这方面的特征在MySQL
4.1.1前,语句剖析器不是那末严厉,它在处置字符串转工夫转换时会疏忽第一个数字前的其他字符。在4.1.1以后,就对照严厉了前往了局是DATE,DATETIME,或TIME范例的函数的了局会被转换成工夫型
2、再看从4.1到5.0的次要变更
InnoDB和MyISAM表中空格开头的TEXT字段索引按次改动了。因而必要运转 "CHECKTABLE"语句修单数据表,假如呈现毛病,就运转"OPTIMIZETABLE"或"REPAIR
TABLE"语句修复,乃至从头转储(用mysqldump)MySQL5.0.15入手下手,怎样处置BINARY字段中添补的值已改动了。添补的值如今是
0x00而非空格了,而且在取值的时分不会往除开端的空格从MySQL5.0.3入手下手,DECIMAL的完成体例已改动了,5.0对DECIMAL
的格局限定严厉多了在MySQL5.0.3到5.0.5之间版本的MyISAM和InnoDB表中创立的DECIMAL
字段晋级到5.0.6以后会产生溃散在之前,守候超时的锁会招致InnoDB
回滚以后全体事件,从5.0.13入手下手,就只回滚比来的SQL语句了在4.1.13/5.0.8之前,DATETIME的加0后就转换成YYYYMMDDHHMMSS格局,如今酿成
YYYYMMDDHHMMSS.000000格局了从5.0.3入手下手,DECIMAL用更无效的格局来存储5.0.3入手下手,在盘算DECIMAL值和舍进准确值的时分接纳准确数学4.1中,FLOAT或DOUBLE之间的对照可巧没成绩,但在5.0中大概就不可了从5.0.3入手下手,VARCHAR和VARBINARY字段中开端的空格不再删除增添了一个新的启动选项innodb_table_locks,它招致LOCKTABLE时也能够哀求
InnoDB表锁。这个选项默许翻开,不外大概在AUTOCOMMIT=1和LOCKTABLES
使用中会招致逝世锁
看来,我只需次要存眷工夫(
TIMESTAMP,DATETIME<DATE,TIME
)和 数值型(
FLOAD,DOUBLE,DECIMAL
)这两品种型的变更;别的,我晋级过程当中临时还不必要触及到字符集成绩,因而绝对轻松一些。 晋级步骤以下:
实行FLUSHTABLESWITHREADLOCK; 间接拷贝MyISAM表文件
用 mysqldump
导出Innodb范例的表 全部历程都很顺遂,新体系启动以后,发明以下2个成绩:
新增了关头字 INOUT
,因而必要反省表布局中另有其他甚么字段利用关头字了 DATE_FORMAT
函数请求松散多了,DATE_FORMAT(2006/11/2409:14:00,%Y-%m-%d%T) 和
DATE_FORMAT(2006/11/2409:14:00,%Y-%m-%d%T) 的了局完整纷歧样,在4.0中,能兼容这两种格局,而在5.0中,只能准确的利用前者了,后者则会有成绩。这也应当是下面提到的工夫范例产生的变更而至。
到此为止,晋级基础停止,大抵反省了
DECIMAL
范例也没成绩,剩下的就是反省其他的了人们常说“成功孕育成功”,这种说法明显非常适合MySQL的情况。MySQL学习教程这个开源数据库号称在全世界有超过110万份的完全安装。 两个月啃那本sqlserver2005技术内部-存储引擎,花了几个月啃四本书 同样会为索引视图等应用带来麻烦。看看行级和事务级的快照数据放在tempdb中,就能感觉到目前架构的尴尬。 sqlserver的痛苦之处在于有用文档的匮乏,很多只是表明的东西 记得在最开始使用2k的时候就要用到这个功能,可惜2k没有,现在有了作解决方案的朋友会很高兴吧。 对于微软系列的东西除了一遍遍尝试还真没有太好的办法 原来的计算字段其实和虚拟字段很像。只是管理方面好了而已,性能方面提高不多。但是SQL2005提供了计算字段的持久化,这就提高了查询的性能,但是会加重insert和update的负担。OLTP慎用。OLAP可以大规模使用。 从项目平台的选择上讲,我们关心的,应该是一款产品能不能满足任务需求,而不是网上怎么说。 作了些试验,发现使用CLR的存储过程或函数在达到一定的阀值的时候,系统性能会呈指数级下滑!这是非常危险的!只使用几个可能没有问题,当一旦大规模使用会造成严重的系统性能问题!
页:
[1]