SQL数据库优化:切割 数据库连接池考试系统

来源:IT165收集  发布日期:2015-07-06 20:30:48

  上篇讲到了考试过程中,开发人员需要关注cpu和内存。sql日志也不容忽视,sql日志中显示了数据库操作系统的报错日志,给排错提供了很大的便利。
  考试的数据库中写入了一些监听死锁和当前最耗资源语句的SQL语句。可以及时的监控死锁和了解当前考试进行到哪一步,是抽题,还是答题,还是交卷。
  其中,听到了两个词:切割、数据库连接池。
  后来查了一下,发现这两种方法都可以从不同的程度上对数据库的性能进行优化。

一、切割

   横向切割:
   就是把行分类,常用的两种是按照时间、索引划分。时间划分:比如5年的历史数据,根据二八定律,1年的数据可能就足够满足大部分的业务需求,所以单独的把1年的数据拿出。这样查询起来效率会更高。索引划分:比如部门编号,各个车间只存储自己车间的零件信息,把各个车间的信息分成单独的表更加方便查询。
  
   纵向切割:
   就是所谓的列切割。大数据的时候,列的个数直接影响到存取效果。

   实例分割:
   就是把共同的业务部分抽象,分别存储在不同的数据库中。例如账户数据库(存储用户信息)、日志数据库(存储监测数据)……
  
   实例物理存储分割:
   大数据的时候,放到不同的服务器上统计信息,可以通过分布式计算,大大提高运算速度。

二、数据库连接池

  顾名思义,就是盛放数据库连接的池子,拥有分配、管理、释放数据库连接的能力。
  这里写图片描述

  具体就是初始化的时候,创建一定量的数据库连接放到连接池中,用户访问数据库的时候,无需建立新的连接,直接从连接池中拿就可以了,用完了再放回去。就像公共汽车似的,下车了,别人还可以接着来。30个座位,肯定能保证2个人在用,汽车司机和售票员,这个是最小连接数;来50个人,车只能放下30个,30就是最大连接数。剩下的几个人就只能排队等下一班车了。
  
  好处:
  数据库连接是一种关键的昂贵的有效的资源,数据库连接池增加了系统的伸缩性和健壮性。很少改动,就可以实现高吞吐量和低延迟和高性能。释放时间>最大空闲时间,容易造成数据库连接遗漏,连接池的接力赛很好的避免了这一问题。

三、总结

  学习就是把理论应用于实践,希望以后做系统能把自己学到的理论知识很好的应用到实践当中,加油!

 

Tag标签: 数据库   系统  
  • 专题推荐

About IT165 - 广告服务 - 隐私声明 - 版权申明 - 免责条款 - 网站地图 - 网友投稿 - 联系方式
本站内容来自于互联网,仅供用于网络技术学习,学习中请遵循相关法律法规