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

  上篇讲到了考试过程中,开发人员需要关注cpu和内存。sql日志也不容忽视,sql日志中显示了数据库操作系统的报错日志,给排错提供了很大的便利。

  考试的数据库中写入了一些监听死锁和当前最耗资源语句的SQL语句。可以及时的监控死锁和了解当前考试进行到哪一步,是抽题,还是答题,还是交卷。

  其中,听到了两个词:切割、数据库连接池。

  后来查了一下,发现这两种方法都可以从不同的程度上对数据库的性能进行优化。

一、切割

   横向切割:

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

  

   纵向切割:

   就是所谓的列切割。大数据的时候,列的个数直接影响到存取效果。

   实例分割:

   就是把共同的业务部分抽象,分别存储在不同的数据库中。例如账户数据库(存储用户信息)、日志数据库(存储监测数据)……

  

   实例物理存储分割:

   大数据的时候,放到不同的服务器上统计信息,可以通过分布式计算,大大提高运算速度。

二、数据库连接池

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

  

  具体就是初始化的时候,创建一定量的数据库连接放到连接池中,用户访问数据库的时候,无需建立新的连接,直接从连接池中拿就可以了,用完了再放回去。就像公共汽车似的,下车了,别人还可以接着来。30个座位,肯定能保证2个人在用,汽车司机和售票员,这个是最小连接数;来50个人,车只能放下30个,30就是最大连接数。剩下的几个人就只能排队等下一班车了。

  

  好处:

  数据库连接是一种关键的昂贵的有效的资源,数据库连接池增加了系统的伸缩性和健壮性。很少改动,就可以实现高吞吐量和低延迟和高性能。释放时间>最大空闲时间,容易造成数据库连接遗漏,连接池的接力赛很好的避免了这一问题。

三、总结

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

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-13 09:43:08

SQL数据库优化:切割、数据库连接池--【考试系统】的相关文章

Mybatis-update - 数据库死锁 - 获取数据库连接池等待

最近学习测试mybatis,单个增删改查都没问题,最后使用mvn test的时候发现了几个问题: update失败,原因是数据库死锁 select等待,原因是connection连接池被用光了,需要等待 get: 要勇于探索,坚持就是胜利.刚看到错误的时候直接懵逼,因为错误完全看不出来,属于框架内部报错,在犹豫是不是直接睡觉得了,毕竟也快12点了.最后还是给我一点点找到问题所在了. 同上,要敢于去深入你不了解的代码,敢于研究不懂的代码. 距离一个合格的码农越来越远了,因为越学越觉得漏洞百出,自己

从案例中学习SQL数据库优化

下载地址:百度网盘下载 课程目录: 1.从案例中推导SQL优化的总体思路与误区2.从案例中分析体系结构如何左右SQL性能3.从案例中体验逻辑结构如何影响SQL优化4.从案例中探寻表设计对SQL优化的重要性5.从案例中明白索引是如何让SQL运行飞快6.从案例中体会索引让SQL举步维艰的一面7.从案例中体会函数及位图索引与SQL优化8.从案例中洞察表连接与SQL优化之间关系9.从案例中探讨该如何分析读懂析执行计划10.从案例中弄清如何正确选择SQL性能工具11.从案例中学习如何进行不改写SQL的优化

数据库优化 | 亿级数据量系统数据库性能优化方案

一.数据库性能瓶颈主要原因 1.数据库连接 MySQL数据库默认连接为100,我们可以通过配置initialSize.minIdle.maxActive等进行调优,但由于硬件资源的限制,数据库连接不可能无限制的增加,对大型单体应用单实例数据库可能会出现最大连接数不能满足实际需求的情况,这时就会系统业务阻塞. 2.表数据量大(空间存储问题) 普遍观点认为单表数据量超过1000万条时就是出现数据库读取性能瓶颈.从索引角度分析,如果索引未被命中,数据库系统就会全表扫描,数据量越大,扫描全表的时间就会越

主流的数据库连接池

1.数据库连接池概述 数据库连接的建立是一种耗时.性能低.代价高的操作,频繁的数据库连接的建立和关闭极大的影响了系统的性能.数据库连接池是系统初始化过程中创建一定数量的数据库连接放于连接池中,当程序需要访问数据库时,不再建立一个新的连接,而是从连接池中取出一个已建立的空闲连接,使用完毕后,程序将连接归还到连接池中,供其他请求使用,从而实现的资源的共享,连接的建立.断开都由连接池自身来管理. 数据库连接池为系统的运行带来了以下优势:昂贵的数据库连接资源得到重用:减少了数据库连接建立和释放的时间开销

单机数据库优化的一些实践(mysql)

数据库优化有很多可以讲,按照支撑的数据量来分可以分为两个阶段:单机数据库和分库分表,前者一般可以支撑500W或者10G以内的数据,超过这个值则需要考虑分库分表.另外,一般大企业面试往往会从单机数据库问起,一步一步问到分库分表,中间会穿插很多数据库优化的问题.本文试图描述单机数据库优化的一些实践,数据库基于mysql,如有不合理的地方,欢迎指正. 1.表结构优化 在开始做一个应用的时候,数据库的表结构设计往往会影响应用后期的性能,特别是用户量上来了以后的性能.因此,表结构优化是一个很重要的步骤.

Tomcat6.0数据库连接池配置

http://blog.163.com/magicc_love/blog/static/185853662201111101130969/ oracle驱动包Tomcat 6.0配置oracle数据库连接池 安装Tomcat后,在我的电脑-属性—>高级-->环境变量系统变量中添加以下环境变量(假定你的tomcat安装在c:\tomcat); CATALINA_HOME: c:\tomcat CATALINA_BASE: c:\tomcat TOMCAT_HOME: c:\tomcat 然后修改

单机数据库优化

数据库优化有很多可以讲,按照支撑的数据量来分可以分为两个阶段:单机数据库和分库分表,前者一般可以支撑500W或者10G以内的数据,超过这个值则需要考虑分库分表.另外,一般大企业面试往往会从单机数据库问起,一步一步问到分库分表,中间会穿插很多数据库优化的问题.本文试图描述单机数据库优化的一些实践,数据库基于mysql,如有不合理的地方,欢迎指正. 1.表结构优化 在开始做一个应用的时候,数据库的表结构设计往往会影响应用后期的性能,特别是用户量上来了以后的性能.因此,表结构优化是一个很重要的步骤.

windows任务管理器cpu使用和PF解析--【考试系统】

考试系统一直都是我们在开发.测试.维护.最近一直都在观摩考试,每次数百学生同时登录的时候,服务器cpu和内存,数据库的日志显示数据变得格外重要. 下面是服务器内存某一时间段的截图. 一.考试时候cpu和内存现象: 学生开始抽题,进行考试的时候,cpu占有率从几乎为0的地方开始上升,内存占有率从大约4个G开始上升.大概经过三四十秒的样子,cpu最高可以达到70%左右,内存占有可以达到6 个多G.持续1分钟后,开始cpu和内存占有都开始下降,最终达到cpu15%之内,内存4.3个G左右. 二.cpu

单机数据库优化的一些实践

本文由码农网 – 吴极心原创,转载请看清文末的转载要求,欢迎参与我们的付费投稿计划! 数据库优化有很多可以讲,按照支撑的数据量来分可以分为两个阶段:单机数据库和分库分表,前者一般可以支撑500W或者10G以内的数据,超过这个值则需要考虑分库分表.另外,一般大企业面试往往会从单机数据库问起,一步一步问到分库分表,中间会穿插很多数据库优化的问题.本文试图描述单机数据库优化的一些实践,数据库基于mysql,如有不合理的地方,欢迎指正. 1.表结构优化 在开始做一个应用的时候,数据库的表结构设计往往会影