最新使用mysql5的一点笔记
主要针对mysql5的一些新特性说起:
1、存储过程
一个我非常喜欢的东西,因为我习惯把对数据库的操作(DAL层),都封装在存储过程里,这样在对于一个项目里如配有专有的数据库开发人员来说,是非常方便的,因为他可以不懂脚本编程,而只需要专心编写存储过程就行了,脚本的调用,只需要在之前协商好接口规范即可。
晕,说远了,该说mysql5下的感受了。
首先的感受就是他不是编译型的,感觉有点是解释型的。因为在建立的时候,他只会提示基本的语法错误,但不会对具体查询是否可以成功执行而做出提示,但是在mssql里,却是会完全提示出来。基于已知mssql的sp是事先编译的,因此判断mysql下的sp不是事先编译的。那么这个改进起码可以说是只成功了一半。因为在sp里一般会封装比较多的操作,而如果只有等到执行的时候才发现错误,查错是非常之痛苦的。
第2个就是他的查询浏览器(就是类似于mssql下的查询分析器的东西,但功能上差太多了。)每个版本都有改进,但有时候居然会新版本出现旧版本根本不会出错的BUG,真服了那些人了。
第3点就是如果之前测试的时候服务器是在windows环境下的话,那么如果转移到linux的话,就会出现一些莫名其妙的错误,例如在windows下可以在存储过程中调用其他存储过程的话,在linux下就不行了,而且好象在装linux的时候,必须设置一个参数,否则就不能调用存储过程。
第4点就是他存储过程里的变量声明,居然是弱类型的,即可以不declare就直接使用,并且就算是已经declare的话,在赋值的时候居然不会出错,但却会自动进行类型转换。这个东西害我不浅啊。。。。。
2、触发器
我至今尚未能真正用得到他。因为在使用手册中,例子只说了如何在update之前去检验数据的有效性,然后入库,但没提到如何在触发器里去改写其他表的数据。而在我的测试里,根本不能改写其他表的数据,提示该表不在锁状态,晕了,,,而如果我在触发器里使用lock语句的话,却又提示我lock不能用在这个地方里。倒。如果是这样的话,那么这个新特性也只成功了一半。
3、客户自定义函数
这个东西我也很喜欢,因为通过调用他,可以省略很多在脚本级操作。不过在这个项目里,没用到他。soso,对它不是很了解。
4、没有定时作业
这个东西对于一个比较大型的系统来说,是非常之有用的,但居然mysql还是没有把它加入进来,唉。。。
总体来说,这次与mysql的亲密接触,令我非常失望。以前对它的一点点好感也没有了,除了速度快,free,在商业应用里几乎一无是处。
1、存储过程
一个我非常喜欢的东西,因为我习惯把对数据库的操作(DAL层),都封装在存储过程里,这样在对于一个项目里如配有专有的数据库开发人员来说,是非常方便的,因为他可以不懂脚本编程,而只需要专心编写存储过程就行了,脚本的调用,只需要在之前协商好接口规范即可。
晕,说远了,该说mysql5下的感受了。
首先的感受就是他不是编译型的,感觉有点是解释型的。因为在建立的时候,他只会提示基本的语法错误,但不会对具体查询是否可以成功执行而做出提示,但是在mssql里,却是会完全提示出来。基于已知mssql的sp是事先编译的,因此判断mysql下的sp不是事先编译的。那么这个改进起码可以说是只成功了一半。因为在sp里一般会封装比较多的操作,而如果只有等到执行的时候才发现错误,查错是非常之痛苦的。
第2个就是他的查询浏览器(就是类似于mssql下的查询分析器的东西,但功能上差太多了。)每个版本都有改进,但有时候居然会新版本出现旧版本根本不会出错的BUG,真服了那些人了。
第3点就是如果之前测试的时候服务器是在windows环境下的话,那么如果转移到linux的话,就会出现一些莫名其妙的错误,例如在windows下可以在存储过程中调用其他存储过程的话,在linux下就不行了,而且好象在装linux的时候,必须设置一个参数,否则就不能调用存储过程。
第4点就是他存储过程里的变量声明,居然是弱类型的,即可以不declare就直接使用,并且就算是已经declare的话,在赋值的时候居然不会出错,但却会自动进行类型转换。这个东西害我不浅啊。。。。。
2、触发器
我至今尚未能真正用得到他。因为在使用手册中,例子只说了如何在update之前去检验数据的有效性,然后入库,但没提到如何在触发器里去改写其他表的数据。而在我的测试里,根本不能改写其他表的数据,提示该表不在锁状态,晕了,,,而如果我在触发器里使用lock语句的话,却又提示我lock不能用在这个地方里。倒。如果是这样的话,那么这个新特性也只成功了一半。
3、客户自定义函数
这个东西我也很喜欢,因为通过调用他,可以省略很多在脚本级操作。不过在这个项目里,没用到他。soso,对它不是很了解。
4、没有定时作业
这个东西对于一个比较大型的系统来说,是非常之有用的,但居然mysql还是没有把它加入进来,唉。。。
总体来说,这次与mysql的亲密接触,令我非常失望。以前对它的一点点好感也没有了,除了速度快,free,在商业应用里几乎一无是处。
补充一下,在最新的5。0。10以上版本,触发器好象就可以对其他表进行操作了。。。根据他的说明,但偶尚未有空去测试这个,soso。。。。
相关文章:
- SB的mysql!!! - 2005年09月13日 23:09
- 在windows2003的IIS6上安装PHP5和Perl5 - 2006年11月21日 23:11
- Blog搬家了,呵呵。。。 - 2006年10月09日 22:54
- 纠正一些人的误区——什么才是ajax?ajax是拿来做什么的? - 2006年02月07日 18:01
- 开源数据库 Sharding 技术 - 2008年08月25日 13:52
- 在Mysql5下使用Hash分区时排序的怪异现象 - 2008年08月21日 21:52
- 前两天给这个Blog加上了Cache功能 - 2007年12月06日 16:34
- blog程序更新 - seo优化尝试 - 2007年10月25日 13:05
- 以前对部分SNS网站的研究记录整理 - 2007年04月13日 10:37
- 杂事报告 - 2007年04月11日 10:12
