在Godaddy的Windows主机上使用MySql.Data.dll连接数据库

by shinichi_wtn 2011-02-20 00:21
由于Godaddy的Windows主机Deluxe方案只提供了2个200M的SQL Server 数据库,对于需要建立多个网站来说不是很方便。值得高兴的是,Godaddy提供了25个1G容量的MySQL数据库。而目前许多网站,或者自己建站都会考虑对不同的数据库的支持,BlogEngine.NET就是很好的例子(它几乎支持任何数据库,同时提供了XML作为数据源的支持),我们在编写网站的时候,也经常会使用ASP.NET中的System.Data.Common提供的工厂模式来连接数据库。 错误详情 当我们在本机上通过MySql.Data.dll能够正常运行网站,上传到Godaddy就会出现权限问... [More]

MySql字符集初探,MySql编码问题

by shinichi_wtn 2010-04-10 00:25
今天从一个大文本文件里导入数据到MySql数据库中,但是发现中文字段却没有值,在导入时换成其他编码后更是出现了乱码。因为用程序逐行读这个大文本文件的前几行是可以读出来中文的,于是觉得应该是MySql编码设置不对引起的。因此上网查阅了一些资料,了解了一些基本的东西。 MySql的字符编码可以在服务器、数据库、表、字段各种层次上定义,最底层是字段字符集,当数据库和各个字段建立好后,改变上层的字符集不会改变具体字段的字符集;当创建新的数据库和表时,则以上层的默认字符集作为其字符集。每个字符集对应许多Collation(”校对规则"),"校对规则"是在字符集内用于比较字符的一套规则,主要... [More]

用MySql的查询分析语法explain来优化查询和索引

by shinichi_wtn 2010-03-24 19:03
数据库最常见的操作就是查询了,我们经常要用"SELECT"语法对已有的表进行某种检索,但是在实际应用中,查询前我们并不知道该查询会如何运行、会使用多少时间、会涉及多少字段和记录,每次输入了SQL语句,点击运行,然后慢慢等待结果的出现,好的查询语句效率很高,而有时候也会遇到查询缓慢,久久没有运行完成的情况。 由于我们并不知道实际查询的时候数据库里发生了什么,数据库软件是怎样扫描表、怎样使用索引,因此我们能感知的就只有查询运行的时间,而往往在数据规模不大时,查询是瞬间的,因此在写SQL语句时也就比较随意,也很少使用索引来加速查询的速度。不过一旦数据规模增大,比如百万、千万、几亿的时候,我们写同样... [More]

MySql查询时间段的两种方法

by shinichi_wtn 2010-03-22 10:52
MySql的时间字段有date、time、datetime、timestamp等,往往我们在存储数据的时候将整个时间存在一个字段中,采用datetime类型;也可能采用将日期和时间分离,即一个字段存储date,一个字段存储时间time。无论怎么存储,在实际应用中,很可能会出现包含“时间段”类型的查询,比如一个访问记录数据库,需要统计每天的访问数量,这个每天就是一个时间段。下面介绍MySql查询时间段的两种常见方法,其他数据库也可以类似实现。 方法一:传统方式,即指定开始时间和结束时间,用"between”或者"<",">"来建立条件,比如查询2... [More]

微软MySQL to SQL Server迁移工具SSMA CTP1.0试用

by shinichi_wtn 2010-01-13 20:22
今天下载了微软才发布的MySQL to SQL Server迁移工具SQL Server Migration Assistant 2008 for MySql,由于甲骨文收购SUN一拖再拖,MySql的命运也不可知,于是微软发布该软件,帮助MySql用户把数据迁移到SQL Server里面。 其实MySql是一款很棒的数据库软件,现在许多企业级的应用都使用了它,但是MySql在安全性和超大规模数据库应用(数据仓库、数据挖掘等)中,没有收费的SQL Server和Oracle好,但是,由于其轻便、开源、免费,深受用户喜爱,大家也不希望MySql被甲骨文所遗弃,现在我做的一些项目就是基于MySq... [More]

SQL Server与MySQL存储过程学习记录之二

by shinichi_wtn 2009-12-18 10:43
在学习记录一中,讨论了SQL Server与MySQL各自建立存储过程的方法和过程,并简单做了一下对比。在实际应用中,查询往往是很复杂的,不可能用一简单的一行SQL语言就能满足我们的需求,这个时候,就需要使用SQL编程。 实现SQL编程有两种方式,第一种就是用高级语言进行反复调用,因为我们熟悉一门或多门高级程序语言,比如C,C++,C#,PHP,Java等等,这些都是能调用数据库操作的。比如在C#这样的面向对象编程语言里,万物皆对象,在创建一个数据库调用程序时,首先需要新建一个连接,同时建立一条SQL操作指令,然后打开连接,执行该指令,最后返回结果,关闭连接。 首先以C#调用SQL Ser... [More]

SQL Server与MySQL存储过程学习记录之一

by shinichi_wtn 2009-12-15 13:39
SQL语句执行的时候要先编译,然后执行。存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程。 SQL Server的存储过程在设计BNU校园百科的时候就有使用,因为存储过程不仅能提高SQL语言的执行效率,同时参数化的调用比每次都写一条SQL语句来得方便。 【SQL Server存储过程的建立】 在企业管理器新建一个StoreProcedure会自动生成相应导航代码,方便用户编写函... [More]

用Navicat for MySQL管理MySQL数据库

by shinichi_wtn 2009-11-21 10:37
微软的SQL Server有强大的前端管理器SQL Server Management Studio,而MySQL则没有配套相应的管理软件,只有自己的命令提示行工具或者一些其他公司开发的管理工具,比如纯WEB端的PhpMyAdmin,昨天师兄介绍了一个用来管理和操作MySQL的软件Navicat for MySQL,试了试,果然强大,基本上什么操作都能在软件中完成,不用在命令行下操作了。各种功能也与其他数据库的管理方式类似,可以很容易上手,并且速度和效率都非常高,尤其在操作本地数据库时更是快。

About

shinichi_wtnI'm Shinichi_wtn

Software Engineering Manager at Microsoft

[More...]


Month List