我们公司现在做一个车牌识别系统的项目,我负责数据库的设计,
需求是:一个城市的几百个监控点抓拍到的车牌信息都要存入数据库,包括(车牌号,时间,地点)
其中地点指的是摄像头的位置,
数据库要实现增加新的记录和查询的功能,
增加就是把每时每刻这些摄像头抓拍到的信息存入数据库,
查询可以按照摄像头的地点和时间组合查询,也可以单独查询车牌在什么时间通过什么地点,
数据量是很大的啊,我现在不知道怎么建表,还有如果一周备份一次数据库的话,如果要是查询某个车牌这个月或者这三年的记录,岂不是很悲剧,我怎么想都觉得数据量太大了,而且需求也太让我恶心了,(仔细想想了解一个车牌这几个月通过了哪些地点其实也蛮正常的。)纠结啊!!!不知道怎么办了!!!希望各位大哥帮帮我,给点意见,谢谢了!!!

解决方案 »

  1.   

    1 业务上需要考虑归档,比如一年前的数据放到别的表中,查询的时候如果需要查历史数据,速度慢些应该可以接受。2 表分区,可以按月+HASH分区,这样分布可以比较平均。3 采购服务器时,需要重点考虑IO和内存性能,做磁盘阵列时采用条带方式,磁盘深度尽可能大,这样在表并行写,或者读的时候,磁盘不成为瓶颈。
      

  2.   

    ”每到新的一会走就会建立一张新表?"这样的sql语句怎么实现啊?我不会写啊?这位大哥您能给我一个简单的例子参考吗?谢谢~~~~
      

  3.   

    ”每到新的一周就会建立一张新表?"这样用sql语句怎么实现啊?我不会写啊?这位大哥您能给我一个简单的例子参考吗?谢谢~~~~不知道怎么让数据库自动根据时间建立新的表。希望各位给个简单例子,我很菜!!呵呵
      

  4.   

    1.把表分成12张表,按月份命名
    2.每张表建立一个3个分区 分为上旬,中旬,下旬
    3.增加一个分区字段用该字段来分区查询 分区字段存月份+日期 如入库时间为2010-12-14 则1214
    create table table_1
    (
      partid        varchar2(4),  --分区字段
      cardId        varchar2(20), --车牌号
      time          dare,         --拍照时间
      addres        varchar2(20)  --地点 

    partition by range (PARTID)
    (
    partition P01_1 values less than ('0111')
        tablespace 表空间
        pctfree 10
        pctused 75
        initrans 4
        maxtrans 255
        storage
        (
          initial 4M
          next 1M
          minextents 1
          maxextents unlimited
          pctincrease 0
        ),
      partition P01_2 values less than ('0121')
        tablespace 表空间
        pctfree 10
        pctused 75
        initrans 4
        maxtrans 255
        storage
        (
          initial 4M
          next 1M
          minextents 1
          maxextents unlimited
          pctincrease 0
        ),
      partition P01_3 values less than ('0132')
        tablespace 表空间
        pctfree 10
        pctused 75
        initrans 4
        maxtrans 255
        storage
        (
          initial 4M
          next 1M
          minextents 1
          maxextents unlimited
          pctincrease 0
        )
    );--按拍照时间建立索引
    create index IX_TIME on table_1(time)
      tablespace 表空间
      pctfree 10
      initrans 2
      maxtrans 255
      storage
      (
        initial 1M
        next 1M
        minextents 1
        maxextents unlimited
        pctincrease 0
      );
    然后依次类推在建立11张表 希望对你又帮助