一个基于mysql数据库的项目的升级解决方案小结(节选)
1 引言
数据库使用MYSQL4.0版本。随用用户数的逐步增多,因为数据库版本过低而引起的抱怨也越来越多,不足也越来越明显。
首先,对产品化部署产生了制约。由于MYSQL4.0数据库的配置文件my.ini是存放在Windows的系统目录下的,同时MYSQL4.0的安装程序无法对端口号进行设置。所以如果一个服务器上已经安装了任意一个版本MYSQL数据库,再安装一个MYSQL4.0,以前的MYSQL 数据库将无法使用。但是随着用户的日益增多,客户提供的服务器的软件环境也是各式各样。不可避免会出现客户提供的服务器上已经安装了MYSQL的情况,而目前系统只在MYSQL4.0上可以使用,所以只能和客户商量更换服务器来解决这个问题(目前已经有多家客户存在这种情况)。因此,如果要使得系统实现产品化部署, MYSQL4.0并不符合要求。另外,在MYSQL的官方网站上,已经停止对MYSQL4.0提供下载。一方面说明,MYSQL4.0已渐渐被淘汰;另一方面,MYSQL在未经开发商授权是不能被商用的[2],因此在实际的部署中,原则上数据库需要用户自行安装的,但安装包的官方下载地址已经不存在了,也会造成商业上的一些问题。所以MYSQL4.0是该系统产品化的一个瓶颈。
其次,对多国语言支持功能弱。由于MYSQL4.0发布时间较早,只支持latin1编码方式存储,而不支持如UTF-8,GBK的编码存储。因此对于如VB,VFP等对Unicode支持不够的编程语言而言,它们从MYSQL4.0数据库获取的中文或日文字符将成乱码显示。而目前一些客户会使用VB制作一些第三方工具来读取该系统的数据库,这个时候就会出现麻烦。
再次,缺少数据库的必要功能。MYSQL4.0是不支持子查询,视图,存储过程等数据库高级特性的。随着该系统功能的逐步增强,代码量的不断增加,不可避免会出现性能问题,而对以上这些高级特性的使用,正是解决性能问题的有效对策之一。所以这部分功能的缺失,是该系统性能改善的一个瓶颈。
还有,长字符存入数据库后有时会出现乱码。MYSQL4.0对各种类型的数据的定义不是很严格。特别是对字符型,由于是用latin1编码进行存储的,一个中文字符是按3个编码单位进行存储的,对于定义为varchar(10)的字段,如果存入4个中文字符的话,第4个中文字符将自动被截去三分之二。因此在数据库中,最后一个中文字符将丢失,同时在界面上显示乱码。更重要的是,这一个过程,数据库没有任何的警示。所以该系统现在的系统中,用户的数据会在不知情的情况下丢失。这个也是该系统客户使用时候的一个瓶颈。
综合这四方面考虑,
相关文档:
Blog系统作为大家最常接触的互联网东东,在站长群体中几乎人手一博,从知名门户的博客频道,到网络营销专家博客,网民对博客的关注度在不断提高并深化。目前网上免费的blog系统太杂,在此整理PHP版的Blog介绍如下:
1、wordpress:http://www.wordpress.org 功能也很全面,应该是支持blog的首选。它有最强的模版功能,已经 ......
前不久网上公开了一个MySQL Func的漏洞,讲的是使用MySQL创建一个自定义的函数,然后通过这个函数来攻击服务器。最早看到相关的报道是在o-otik上,但是公布的是针对 Unix系统的Exploit,并且成功率也不是很高.而近期,国内有高手放出针对Win系统的相关文章,于是我马上找来与朋友一同研究.
其实我们早就能想到.当我们在对MSSQL ......
MySql 字符串函数
[ 2006-04-22 19:24:44 | Author: Ychon ]
Font Size: Large | Medium | Small
对于针对字符串位置的操作,第一个位置被标记为1。
ASCII(str)
返回字符串str的最左面字符的ASCII代码值。如果str是空字符串,返回0。如果str是NULL,返回NULL。
mysql> select ASCII('2');
-> 50
mysql ......