最新使用mysql5的一点笔记

时间:2005年08月30日 18:20  标签: MySQL5 PHP5 存储过程 触发器 自定义函数 原创技术 工作记录
主要针对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,在商业应用里几乎一无是处。
补充一下,在最新的5。0。10以上版本,触发器好象就可以对其他表进行操作了。。。根据他的说明,但偶尚未有空去测试这个,soso。。。。
相关文章:
0条评论(Comments) 订阅该Blog下的评论RSS
本文还没有评论,来给楼主说几句吧...
发表评论
正在加载...
搜索更多
文章导读
最新评论
我的豆瓣秀
RSS订阅
抓虾
Rojo
google reader
netvibes
my yahoo
newsgator
bloglines
鲜果
哪吒
有道
QQ邮箱
九点