一个网站的落地- MagicDict开发总结2 [ACCESS的不快]

   
说到数据库,有成百上千博增选,除了MS-SQL,Oracle,SQLite,MySql,这些大家都坏熟悉的同学,还有DB2,IMSDB(灰常灰常古老的数据库,用当OS390等于Mainframe中,层次型数据结构,不做大型机的校友等可能不晓得)。不过,大部分民用网站的首选还是Access,理由很粗略,ASPNET的空间,它是免费应用的。

    
天下没有白吃的午餐,ACCESS对于小型数据库来说,完全无呀问题,不过,如果数据库非常大的话,呵呵,可能受您成天提心吊胆了。(特别是于入门级的网络空间来说,简直就是不幸)

     好了,来说说我的故事吧。我跟ACCESS,不得不说之故事。

   
使用数据库,第一宗工作,就是数据库的筹划,不过,具体设计无以当下篇文章里介绍了。[数据库的计划性,其实是杀让人纠结的工作,特别是ACCESS这种弱小之事物,考虑到空中服务商1%CPU使用率的确定,有的上要竭尽全力的优化,不然,访问非常缓慢好缓慢好缓慢]。第二桩业务虽是行使数据库。

  
使用数据库,都是起建DBConnection开始之。如何立DBConnection,无非是通过一个数据库连接字符串New出一个数据库连接实例。数据库连接字符串放在什么地方,我特别据总责之说,有N种地方可以放开之事物。最极致简便的,直接写深在数据库访问类里面:

OleDbConnection rtnConnection = new OleDbConnection();
rtnConnection = new OleDbConnection(“大家吓,我是数据库连接字符串”);

自,同学等于各种模式设计与IOC的洗刷脑筋下,都掌握如果管这写于布局中了。其实以稍的种类,这个确实没有什么实际的意思。为了Install
B,为了显得自身哉是读了一把手的代码的,我吗这样描写了。[大型项目,非常有必要这样做,通过部署文件来改数据库,不是由此改写代码来窜数据库]

1。先管字符串写于布局文件中,

  <appSettings>
    <add key=”strconForJpDic” value=”Provider=Microsoft.Jet.OLEDB.4.0;Data Source=@urlbase\Kuww_Net_System\Access\TJJTDS.mdb;Persist Security Info=True”/>
  </appSettings>

2。通过安排管理器ConfigurationManager获得配置文件里的字符串内容,然后实例化OleDbConnection

        OleDbConnection rtnConnection = new OleDbConnection();
rtnConnection = new OleDbConnection(ConfigurationManager.AppSettings[“strconForMagicDict”].Replace(“@urlbase”, UrlBase));

3。接下来就打开数据库连接。

   
这里产生一个问题,我直接不是大明白。数据库连接并无是设显式Open才会下。有时候不写Open,Close也可以用。

   
一游说,数据库组件会自动打开,一说,有数据库连接缓存池,这个题目本身始终未晓怎么。

    另外,如果数据库一直开着,不知底凡是无是有什么问题。

    数据库连接开开关关,是勿是碰头时有发生总体性问题也?高手有人知吗?

 

下面是这个故事之关键了:

   
数据库的话,原来自家只是开了一个Access文件,这里面来询问而因此的片段表,这些报表是特Selete的。

   
同时为记录下没询问及结果的用语,这里还有一个用来数据记录INSERT的报表。

   
这个数据库的大大小小也13M,应该无是非常老的数据库。放在网络上测试一下,第一不善,不错,速度迅速,第二糟糕,也得,不过,到了第N蹩脚后,网站整体进度就异常了。为什么速度会要命也,如何解决这个题材吗?为了增进网站速度,我利用了重重计,这个以于后头的章中介绍。最后发现,数据库不给力,是最最特别之杀手。怎么收拾?怎么惩罚?“花钱买SQL空间或会见加强速度”,空间服务商的校友为有了一个坏好[很标准]的答案,当然,也是促销的方。我心啊懂,这个办法一致劳永逸了,不过,我好在苛刻条件面临,压榨系统的末段一滴油。。。。(不是祈求看钱,和CPU超频的对象同样,能够刮系统,也是平等栽乐趣)。

   
数据库的问题,可能是坐数据库的占用空间不过好了,在数据库无法回落的景下面,有什么好点子啊?把一个数据库拆成2单试试看吧。这个法的冲是,一涂鸦操作针对一个死数据库可能会见生缓慢,化整为零星恐怕会见好一点。在1只时间单位中处理1只雅数据库,可能会见对CPU造成瞬间底杀之载重,如果把拍卖分在2单时刻单位内,CPU以会相对中庸,在查询时未是坏严苛的时候,这个会格外行。同时,把检索的表和插入的表分在不同数据库中,这样,需要读之文件大小不转换,需要写的文件就换得有点了成千上万,IO的背吗暴跌下来了。

   把数据库一分为亚后,上线,测试一下,OK,世界还更换得美好了。。。。

  
[新生蝉联试验发现,两单数据库,只读和读写分开来是必不可缺,单个数据库大小并无是殊重点。现在13M底数据库让剪切为11M但读与2M读写,并没平均分割,保证读写的良足够小,才是王道。有大虾能够解释一下理由啊?]

 

小结一下:

    1。数据库会拖累网站速度

   
2。数据库只读与读写表格,在采用ACCESS的时段,最好能分别来,保证每次写文件使用的IO尽量少。

 

 

另外,觉得一个人开网站极度苦了,有人愿意参加网站开为?日语单词检索网站,ASPNET开发之。

发趣味的来信给本人 root#magicdict.com   [convert # to @ ]

或者加MSN mynightelfplayer@hotmail.com

网站地址 http://www.magicdict.com/

 

 

    

   

相关文章