1     表设计

1.1   设计思想

减少冗余数据的存储

数据写入时进行预运算

通过降低记录量提高系统的响应能力

降低磁盘的读操作

1.2   模型结构

GPS轨迹日志数据表保存原始的定位信息数据,索引表为日志数据表的索引信息内容,预处理模块完成新数据的预处理运算功能,保持索引表的信息与日志数据表的信息一致。

预处理模块建议为数据库内部的存储过程,保证对数据表操作的效率性能,通讯服务器以访问存储过程的方式,完成数据保存的事务处理。

1.3   模型原理

1.3.1 数据量

日志数据表最多保存四个月的定位信息数据,最高的记录为246亿条数据,数据量为2.3T(2012年9月-12月)。

索引表为日志数据表的索引信息,保留三个月零一天的车辆定位信息,每车每天为一条记录,最高数据量为432万,每个车辆每天的摘要信息保存在二进制的字段里。

摘要的数据内容包含定位时间、速度、里程、经度、纬度、角度状态信息,摘要在索引表里按规定的报文方式保存在索引表的二进制字段里,每个车辆一天产生的定位数据量为4320条,速度为0的定位信息所占比例为40%-60%左右,因此摘要里只记录有速度的定位数据,每车每天的实际摘要的数据量为2000左右。每个摘要信息量为30Bytes,因此每车每天产生的摘要为58K

Bytes左右。

注:从统计角度考虑,摘要信息里也许会包括速度为0的定位信息。

1.3.2 读取性能

索引表根据业务操作的需要分为“最新定位索引表”、“三个月定位索引表”及“相关的统计索引表”。由于索引表里的记录量在百万级别内,可以实现毫秒级别的响应能力,所有的定位摘要数据保存在一个BLOB的二进制字段里,一次性快速读取出58K Bytes左右的数据,即可获得全天的车辆定位数据,避免数据库在磁盘上随机检索定位数据读而引起I/O性能瓶颈。

1.3.3 索引数据的写操作

每车每天的索引信息的更新,通过预处理模块完成,如果索引表里已经存在该车该天的记录,则进行二进制字段的更新,否则自动添加新的记录。新的车辆定位摘要信息通过规定好的报文协议直接追加到二进制字段后面。

每天通过后台作业的方式,定时删除索引表里最早一天的数据。一次删除的最大记录量为4.9万条(2012年12月31日)。

1.3.4 索引数据的读

读取车辆在某时间段内的定位数据,会从索引表里获得到相应天数的记录数,通过对BLOB字段进行数据协议的处理,获得定位摘要的记录集。

协议的解析工作可以由预处理模块解析,然后反转为表形式返回给web应用,也可以数据库直接交付给web应用服务器二进制数据,由web应用服务器完成数据的解析操作。

1.3.5 报表统计

索引表里二进制数据摘要的状态可以支持8种不同的状态,每个定位数据可以同时具有8种不同的状态,比如超速、偏移路线等,可以直接通过索引表进行统计,快速实时的获取最新的报表数据。

1.4   关键表结构

以下数据表的结构内容未必完整,为关键字段的描述。

1.4.1 最新定位数据索引表

项目

类型

长度(Byes)

说明

号牌信息

Varchar2

8

粤A4811B格式

卡号信息

Number

7

如:13828838124

定位时间

Date

8

YYYYMMDDHH24MISS

记录时间

Date

8

YYYYMMDDHH24MISS

速度

Number

3

0≤SPEED≤999

里程

Number

4

0.00≤ MILEAGE≤9999.99

经度

Number

5

0.0000≤LONGITUDE≤180.0000,如果考虑境外定位,需要增加1位,可以支持最小-999.999

纬度

Number

5

-90.0000≤LATITUDE≤90.000

角度

Number

3

0≤ANGLE≤999

状态

CHAR

2

十六进制,支持8种状态,为2n,1≤n≤8, 1≤STATUS≤255

1.4.2 定位数据索引表

项目

类型

长度(Byes)

说明

号牌信息

Varchar2

8

粤A4811B格式

卡号信息

Number

7

如:13828838124

日期

Number

5

20090531格式

摘要信息

BLOB

≈58K

二进制格式,记录速度≥0的定位信息

静止摘要信息

BLOB

≈58K

二进制格式,记录速度=0的定位信息,待定字段

1.4.3 定位数据日志表

项目

类型

长度(Byes)

说明

序号

number

10

格式为YYYYMMDDHH24+8位序号,共18位,每车每小时产生的记录数为180,8位序号可以支持10万车辆的定位服务

号牌信息

Varchar2

8

粤A4811B格式

卡号信息

Number

7

如:13828838124

定位时间

Date

8

YYYYMMDDHH24MISS

记录时间

Date

8

YYYYMMDDHH24MISS

速度

Number

3

0≤SPEED≤999

里程

Number

4

0.00≤ MILEAGE≤9999.99

经度

Number

5

0.0000≤LONGITUDE≤180.0000,如果考虑境外定位,需要增加1位,可以支持最小-999.999

纬度

Number

5

-90.0000≤LATITUDE≤90.000

角度

Number

3

0≤ANGLE≤999

状态

CHAR

2

十六进制,支持8种状态,为2n,1≤n≤8, 1≤STATUS≤255

合计

63

gps定位信息mysql_GPS定位数据库表设计相关推荐

  1. 网上书城项目的需求分析、数据库表设计及前端界面的编写(项目进度一)

    转载请标明出处:https://blog.csdn.net/men_ma/article/details/106847165. 本文出自 不怕报错 就怕不报错的小猿猿 的博客 网上书城项目的需求分析. ...

  2. 数据库表设计、 数据库分层、myslq水平拆分、oracle表分区

    数据库表设计 数据库表结构设计方法及原则(li)数据库设计的三大范式:为了建立冗余较小.结构合理的数据库,设计数据库时必须遵循一定的规则.在关系型数据库中这种规则就称为范式.范式是符合某一种设计要求的 ...

  3. 美多商城之商品(商品数据库表设计)

    一.商品数据库表设计 1.1 SPU和SKU 在电商中对于商品,有两个重要的概念:SPU和SKU 1. SPU介绍      [即为商品的一个概述,一种商品的统称] SPU = Standard Pr ...

  4. Oracle数据库表设计时的注意事项

    Oracle数据库表设计时的注意事项  表是Oracle数据库中最基本的对象之一.万丈高楼从平地起,这个基础对象对于数据库来说,非常重要.因为其设计是否合理,直接跟数据库的性能相关.从Oracle数据 ...

  5. 万字归纳总结 | 数据库表设计与SQL编写技巧

    点击上方"朱小厮的博客",选择"设为星标" 后台回复"加群"加入公众号专属技术群 前言 随着移动云平台系统业务不断增长,必然需要对各系统进行 ...

  6. 数据库表设计必需元素_HTML5输入,必需,模式,数据列表

    数据库表设计必需元素 Today we will look into some HTML5 features that will help us in removing a lot of boiler ...

  7. php二级分销数据表的设计,无限级分销系统数据库表设计

    在做交易所的时候有个需求,需要统计邀请注册人数,比如 A邀请B, B邀请C, C邀请D.那么A的邀请人数就是3个,B的邀请人数就是2个,C的邀请人数就是1个.除此之外,还要能统计出A直接邀请人数,A下 ...

  8. 商城 商品模块 数据库 表设计

    商城 商品模块 数据库 表设计 要实现一个商城,对于商品模块中的数据库表设计不懂,主要是:相同类别的产品的产品参数相同,不同类别的不同,这里就不懂要怎么设计了,所以上网找几篇博客了解. 什么是SPU. ...

  9. [云盘]协议包和数据库表设计

    协议 登录用户 注册用户 我的文件 我的文件展示页面 服务器返回给前端 秒传 上传文件 共享列表 文件相关操作 分享文件 删除文件 pv字段处理 数据库表设计 MySQL数据库 用户信息表 user ...

最新文章

  1. Java学习总结:16
  2. 路由器和交换机的综合实验
  3. 2型文法:基于预测分析表的自顶向下语法分析
  4. 基于云上分布式NoSQL的海量气象数据存储和查询方案
  5. POJ 3368 Frequent values 线段树区间合并
  6. OSPF-stub/totaly stub
  7. python爬虫代码提取图片中的文字_python识别图像并提取文字的实现方法
  8. mapper.xml报异常The content of elhe content of element type mapper
  9. 升级到win10,安装visualstudio ,80端口被系统服务占用的解决
  10. SAP Knowledge Article TREX search determination
  11. 使用Spring Redis发布/订阅
  12. linux之RAID知识总结
  13. python多环境管理_Python多版本环境管理之pyenv
  14. 日语开发java自我介绍,优秀日语自我介绍范文
  15. win10、ubuntu系统设置CPU高性能模式、卓越性能
  16. SAN存储的局限性相关介绍
  17. 【Java面试题】常规Java面试题分享
  18. 基因数据处理88之vcf2omim得到omim和dbSnpId信息
  19. java统计string中文数字英文_Java学习(4):统计一个文件中的英文,中文,数字,其他字符以及字符总数...
  20. WordPress 插件开发教程:插件加载顺序、创建插件、add_action与do_action

热门文章

  1. 第二类换元法之三角代换习题
  2. Gitbook制作PDF电子书
  3. Kotlin基础:白话文转文言文般的Kotlin常识
  4. “2019/10/11创新创业工坊第六期第一课”心得体会
  5. euclidea教程_euclidea 3.0 全三星 攻略
  6. linux 授信_LINUX下的用户访问授权
  7. 计算机语言表示教师节快乐,教师节英文祝福语(精选50句)
  8. python使用py2neo操作neo4j
  9. 【win10】使用Python 3.7 py2neo连接Neo4j
  10. win10录屏怎么用_怎么用U盘重装win10系统