超越MYSQL,ACCESS复合承载
作者:开良 来源:开良网络 发布时间:2008-12-09 13:31:00
由于众所周知的原因,ACCESS在大型站点应用中都靠不上边,主要问题就是数据量大了以后几乎无法索引。当ACCESS里数据过万后,明显可以感觉到速度变慢,过2万条数据后,慢的可以跟蜗牛相提并论了。但是由于某人灵光突现,想到了一个解决ACCESS数据库承载问题的方案,那个某人就是偶啦……最喜欢搞歪门邪道地偶。
这个解决方案就是“ACCESS复合承载”(本人原创的词,实在找不到合适的描述),简单说就是将原来一个数据库剥离为多个,成为一个主数据库带多个辅数据库。拿我已经实现的开良小说系统来说,小说信息都存储在主数据库内,用于列表检索,小说章节存在辅数据库内,每本小说独立占一个数据库。可能这样你看着有点模糊,我们来下数据对比,一个小说站,算5个分类,每个分类400部小说,每部小说300章节(其实很多小说都不止300章节),那么数据量为5×400×300=60万条数据,这还只是章节数据,其他的还有书目、用户、评论等等数据,这样大的数据量,即使是MYSQL或者MSSQL也要好好规划。但是,采用ACCESS复合承载以后,就会变成1个书目数据库加2000个章节数据库,每个章节数据库里有300条数据,从只有300条记录的ACCESS库里读东西,速度我想大家都能理解,即使是动态读取也绝对不慢。那么,这里又涉及到一个关键的问题,如何将主库与辅库连起来,这其实很简单,我在小说系统里用的是用书目的ID来命名数据库,将数据库打开与关闭做成一个函数,要什么小说的章节就直接打开这个小说的数据库就OK了。
谈完方法,我们来谈谈优缺点。优点很显著,其一,可以做以前很多做不了的事情,ACCESS库原来根本做不了小说系统,现在可以做了,而且还可以做的很大。其二,ACCESS是以独立文件形式存在的,可以很方便的实现复合承载,其他数据库做不到这么方便。其三,一个数据库仅几百条数据,读取效率绝不在其他数据库之下(例如MYSQL 、MSSQL)。其四,ACCESS一般的空间都支持,通用性很高,而且大小不限哦。
接着来看缺点,第一,对程序员的要求也要高一些,数据库的规划必须要完善,数据库多了后要用执行SQL语句来修改格式,不懂编程语言的人是搞不了的。第二,数据检索始终还是有缺陷(对于一些文章系统来说,小说系统压根没这缺陷),无法进行全库检索,只能单库检索。
昨天晚上到今天早上一共花了8个小时,才把系统粗略做出来,睡眠不足,脑子都有点混,写的乱七八糟(其实偶本来就不会写,找个理由挡下。。),希望各位大大不要笑偶。。如果你也有邪门歪道的想法,也可以与我联系哦。偶MAIL:klcode@qq.com


猜你喜欢
- 运行下面两个命令,即可把 Vim(含插件)配置成 Python IDE。目前支持 MAC 和 Ubuntu。curl -O https://
- 最近在重构公司以前产品的前端代码,摈弃了以前的session-cookie鉴权方式,采用token鉴权,忙里偷闲觉得有必要对几种常见的鉴权方
- 看代码吧~# -*- coding:utf-8 -*- import osimport jsonimport numpy as np #fr
- Scrapy是一个用Python实现的为了爬取网站数据、提取数据的应用框架。我们对于爬取到的数据存储到本地或数据库是经常要用到的操作。主要讲
- 本教程将分步讲解如何使用JQuery和CSS打造一个炫酷动感菜单。jQuery的"write less, do more"
- <html> <head> <style type="text/css"> * {
- 前言python2.x版本的字符编码有时让人很头疼,遇到问题,网上方法可以解决错误,但对原理还是一知半解,本文主要介绍 python 中字符
- MySQL 可调节设置可以应用于整个 mysqld进程,也可以应用于单个客户机会话。服务器端的设置每个表都可以表示为磁盘上的一个文件,必须先
- 官网下载先去官网下载MySQL链接跳转的是mysql的下载地址:https://dev.mysql.com/downloads/mysql/
- 问题你想使用一个装饰器去包装函数,但是希望返回一个可调用的实例。 你需要让你的装饰器可以同时工作在类定义的内部和外部。解决方案为了将装饰器定
- 网上关于PyQt5的教程很少,特别是界面跳转这一块儿,自己研究了半天,下来和大家分享一下一、首先是主界面# -*- coding: utf-
- 本文实例讲述了Mysql存储过程中游标的用法。分享给大家供大家参考。具体如下:1. 批量插入商户路由关联数据:DELIMITER $$USE
- 使用云服务器时,我们有时会连接数据库,但在使用Navicat Premium15来连接时,总会遇到报错。常规连接方式,以腾讯云服务器中的My
- 前言学习Python的过程中,比较喜欢通过实际的小项目进行巩固学习,决定写一个弹跳小球的程序。这个实战例程是在公众号上看到的,他的编写过程比
- 1.使用Docker安装Elasticsearch及其扩展获取镜像,可以通过网络pullsudo docker image pull del
- c3p0是什么c3p0的出现,是为了大大提高应用程序和数据库之间访问效率的。它的特性:编码的简单易用连接的复用连接的管理说到c3p0,不得不
- 字符串的表示方式单引号 ' '双引号 " "多引号 """ "&
- 关于SQL Server数据库的一切信息都保存在它的系统表格里。我怀疑你是否花过比较多的时间来检查系统表格,因为你总是忙于用户表格。但是,你
- 在程序调试中,有时候需要知道有多少Session变量在使用,她们的值如何?由于Session对象提供一个称为Contents的集合(Coll
- 在 MySQL 查询中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。关键词 DISTINCT