说到数据库,有很多很多选择,除了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/

转载于:https://www.cnblogs.com/TextEditor/archive/2011/05/29/2061031.html

一个网站的诞生- MagicDict开发总结2 [ACCESS的烦恼]相关推荐

  1. 一个网站的诞生- MagicDict开发总结3 [日语字典数据结构]

    首先感谢各位ACCESS数据库大牛在上一篇文章的评论中,对我的批评和帮助.这样的话,上一篇文章也没有白写了. 的确,一直在Mainframe上做开发,ACESS只是入门级别的水平,学习的道路还很长很长 ...

  2. 做一个网站/APP/小程序开发建设流程步骤

    做一个网站,APP或者小程序开发建设,还是需要很多东西要掌握的.我把整个过程梳理一下. 需求分析 对你项目(网站)的定位做分析,你的项目具体要呈现什么东西,是什么类型的?电商?内容性资讯性的?社交? ...

  3. 用php做一个网站,如何用PHP开发一个完整的网站

    互联网是顺应时代潮流出现的一个产物,他把地球带到了一个前所未有的是带他帮助世界各国完成了很多不能完成的科技项目,只有这样的互联网才能称之为一个完美的世界,也就有了php语言的诞生,php编程语言从诞生 ...

  4. 分享一个WebGL开发的网站-用JavaScript + WebGL开发3D模型

    这张图每位程序员应该都深有感触. 人民心目中的程序员是这样的:坐在电脑面前噼里啪啦敲着键盘,运键如飞. 现实中程序员是这样的:编码5分钟,调试两小时. 今天我要给大家分享一个用WebGL开发的网站,感 ...

  5. python开发一个自己的技术网站_手把手教你写网站:Python WEB开发技术实战

    摘要:本文详细介绍了Python WEB开发的基础入门.以一个博客站点的开发为例讲解了基于Django框架开发WEB站点的全过程.通过本文的学习可以快速掌握基于Django的Python WEB的开发 ...

  6. [html] 你觉得新开发一个网站最困难的是哪些部分?

    [html] 你觉得新开发一个网站最困难的是哪些部分? 提高网站安全性,比如网站有论坛方面的功能,那需要保证不让黑客通过拦截请求信息,发起对论坛信息的破解.在比如DDOS 攻击 个人简介 我是歌谣,欢 ...

  7. aspnet网站开发实例_给自己开发一个网站,这是我的方法。

    个人建站建议先建一个个人博客,因为门槛相对较低,简单容易上手,尝试一下成功建站的感觉,其实还挺有成就感的!! 方法有很多种:如利用博客系统来搭建,如WordPress.emblog.zblog.typ ...

  8. 利用wojilu框架仿一个网站的全过程(Step by Step利用wojilu框架开发网站系列二 附源码)...

    被仿的网站和仿照后的网站 被仿的网站-易读 仿照后的网站-我读 仿这个网站的目的:为了实践一下新学习的轻量级asp.net web开发框架[我记录] ,该网站比较简单,适合入门. 实现章节 章节部分, ...

  9. 史上最强模型 GPT-4 上线:一张手绘草图能生一个网站、60 秒搞定一个游戏开发!

    平地一声雷,GPT-4 重磅来袭. 3 月 14 日,OpenAI 正式上线新一代人工智能大模型 GPT-4,它是一个大型多模态模型,可以接受图像和文本输入,同时返回文本输出.就像这样: 用户:这幅画 ...

最新文章

  1. 《构建之法》读后感之项目计划
  2. JS 中对数组按照数组中某个对象的属性值进行排序
  3. java基础57 css样式、选择器和css定位(网页知识)
  4. 完美主义怎么解决_相信我,你不要完美主义
  5. Github | 谷歌机器学习课程中文版
  6. 内蒙古巴丹吉林沙漠锁定2021中国唯一申遗名额
  7. MySQL数据库:表结构优化
  8. 美媒称俄黑客造成卡塔尔断交潮 俄:啥事都栽给我
  9. 推荐几个短网址赚钱站
  10. 国家密码管理局公告——密码行业标准更新26项
  11. 知乎凡尔赛沙雕语录,究竟有多沙雕?
  12. OpenModelica仿真RLC电路
  13. 一道按顺序排列组合题的几种解法
  14. 算法训练--最小公倍数
  15. 微信小程序集合3(百度小说+电商+仿哗哩哗哩小视频+码绘本跟读+科学计算器+身份证查询+天气+投资理财微+外卖+在线音乐排行)
  16. 手机有时触摸失灵解决方法
  17. 玩客云通过openwrt作为旁路由
  18. Navicat导出错误(ORA-00911: invalid character)
  19. 网页制作篇(智慧树网站马红老师)-基础知识总结1(标记篇)
  20. python创建子类对象会先创建父类对象_Python练习,python,习题

热门文章

  1. C语言内存/指针相关
  2. C/C++深入剖析指针机制与内存动态管理
  3. 如何用python实现地图定位_基于 PyQt5 实现地图中定位相片拍摄位置
  4. php登陆页面修改密码的功能,使用bootstrap创建登录注册页面并实现表单验证功能...
  5. 光纤收发器怎么连接?
  6. 【渝粤教育】国家开放大学2018年春季 7218-22T医学伦理学(本) 参考试题
  7. 【渝粤题库】陕西师范大学209006教育政策与法规作业(高起专、高起本)
  8. 【渝粤教育】电大中专新媒体营销实务 (16)作业 题库
  9. 内部时钟和外部时钟隔离的Σ-Δ调制器
  10. 京津冀计算机学科大学排名,2021年京津冀地区高校排名公布,北师排第三,央财不敌河大?...