数据库服务设计_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 数据库服务设计

数据库服务设计

 2013/12/19 17:09:25  Wang.Crystal  博客园  我要评论(0)
  • 摘要:随着计算机技术的不断发展,现今的已经进入了大数据的时代。笔者在这里谈一下,本文使用的数据库为MySql5.5,使用的编码语言为C#,以车载调度的项目为基础谈自己对数据库服务设计的一点自己的看法。笔者第一次在博客园在写文章,欢迎大家拍砖在该项目中数据库共用2类。一类是静态数据如,线路信息,设备信息等。这类数据有以下一个特点。在都在程序运行前导入的,变化很少。第二类是动态数据库如车辆Gps信息,车辆过站信息等车辆实时运行数据。这类数据是在车辆运行的过程中的产生的。这类数据的特点是数据量大
  • 标签:数据库 数据 服务 设计

 随着计算机技术的不断发展, 现今的已经进入了大数据的时代。笔者在这里谈一下,本文使用的数据库为MySql 5.5,使用的编码语言为C# ,以车载调度的项目为基础 谈自己对数据库服务设计的一点自己的看法。 笔者第一次在博客园在写文章,欢迎大家拍砖

   在该项目中数据库共用2类。一类是静态数据  如,线路信息,设备信息等。这类数据有以下一个特点。在都在程序运行前导入的,变化很少。第二类是 动态数据库  如 车辆Gps信息 ,车辆过站信息 等车辆实时运行数据。这类数据是在车辆运行的过程中的产生的。这类数据的特点是 数据量大。源源不断的数据库 ,我这里以1000台车 每5秒产生一条GPS数据大家可以想象一天会产生多少数据.如下图 是数据库服务和Mysql 的一个架构

  

  

                                                                                                 (图一)

   在DBServer 启动时,从MYSQLsalve中一次加载进线路信息,车辆信息在静态数据到DBServer的内存中,由于这边DBServer做为全局数据入口,这样可以减少MYSQLsalve 的压力,快速查询出相关的数据信息,在这里我们将 路单计算,轨迹计算等查询业务放在MysqlSavle中,把Gps 信息,路单信息的写入放在MysqlMaster服务中,达到了。读写分析以后静态和动态数据的分离

class="brush:csharp;gutter:true;"> public class DBServerAchieve
  {
        public static List<Front> frontList=null;
        public static List<Line> LineList=null;
        public DBServerAchieve()
        {
            if (frontList == null && LineList == null)
            {
                frontList = new List<Front>();
                LineList = new List<Line>();

                GetSaticDataFromMySql(out frontList, out LineList);
            }
        }

        /// <summary>
        /// 加载静态数据
        /// </summary>
        /// <param name="frontList"></param>
        /// <param name="LineList"></param>
        private void GetSaticDataFromMySql(out List<Front> frontList, out List<Line> LineList)
        {
            throw new NotImplementedException();
        }
}

 贴上一小段代码给这里,这里比较简单,其实的就是在DBServer的实现类的构造函数中加载了,一些静态数据,笔者使用的数据库持久层,主要是使用了工厂模式进行了分封。感觉园子里面应该能够找到很多。

  最后给大家说一下MYSQL的复制是如何进行工作的

   (1)    master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events);    (2)    slave将master的binary log events拷贝到它的中继日志(relay log);    (3)    slave重做中继日志中的事件,将改变反映它自己的数据。

       

 

           

 

发表评论
用户名: 匿名