提高查询数据库效能的小实验(1)

这两天遇到这样的一个问题。
最近在做所里面的标本系统编目的项目,已经作了一年多了,下面是物种名录的数据库设计。就是大家熟悉的界、门、纲、目、科、属、种的分类阶元,中间还包括亚阶元,也就是亚门,亚纲……一直到亚种。由于表太多,我没有贴全,暂且贴这点儿,大家肯定一看就明白了。
1.jpg
下面这个图指示的是标本的信息存放方式,也就是标本和物种的对应关系。
2.jpg
程序中涉及到这样一个应用,就是统计某一个阶元下面的标本数目,比如说我想统计脊索动物门(就是人种属于的那个啦)的标本数目,开始的时候,程序是随便写着玩的,就依次的计算门下面都有哪些纲,然后再计算都有哪些目...一直计算到种,然后查找这个种的集合中有多少个标本,最后得到所要的数值。现在这种做法是极度恶劣的。
后来设计了一组视图,将所有的物种信息都放在一张视图上。
视图1:显示所有的物种信息
3.jpg
视图2:显示所有的分类阶元信息(不包含亚阶元信息)
4.jpg
视图3:显示所有的亚分类阶元信息
5.jpg
视图4:显示所有的物种信息
6.jpg
这样设计的视图好像有些繁琐,但是在其他的应用上还可以用到其中的某些部分,于是就这样设计了。这样,在查找某一阶元下面的标本信息的时候只要利用select * from specimen where speciesID in (某一个阶元下面的物种列表),就可以实现了。
做好了之后发现运行良好,在为自己的小聪明沾沾自喜。忽然就发现问题了,数据量提高(物种数据一万条,标本数据一百万条)上去之后,运行时间特别慢。挠头ing.......

转载于:https://www.cnblogs.com/Seraph/archive/2005/03/11/116753.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值