一、数据处理性能存在的问题

1、企业的数据都集中存储在数据库中,从海量的数据中查找和定位数据是非常耗时的;
2、数据集中存储后,所有用户都要来访问数据库,当很多用户同时访问数据库时,数据库服务器的负载就非常中。

二、数据处理过程

  • 所有处理要由CPU完成,但数据全部存储在磁盘上。CPU和磁盘很不匹配:CPU速度很快,磁盘速度很慢,相差天文数字(106)个数量级;
  • 磁盘有不可替代的特质:存储容量大;其上的数据不受系统故障影响;
  • 内存速度比磁盘高很多,起到缓冲作用,但其容量比磁盘小很多,其上的数据在发生死机或停电之类的故障时,数据丢失;
  • 数据库数据量通常比内存容量大很多;

三、数据库性能度量指标

1、事务吞吐量
单位时间内能够完成事务的数量;
2、响应时间
完成单件事务需要耗费的时间。

两个指标必须相提并论,不能单独来提

四、提高数据库性能的策略

挖掘和利用

  • 数据特性
  • 硬件特性
  • 以及数据访问特性

五、提高数据库性能的方法

与数据库设计有关的方法:
1、排序
2、索引

大块的数据变成了很小的索引(仅2行),缩小了很多很多倍,可以一次
性加载到内存里,迅速地找到想要的行,然后将行数据从磁盘读入内存。

没有索引,则要把大块数据全运输到内存,一个一个地比对,仅只极少的行有用。

创建索引时的注意事项

语法:

CREATE INDEXstudentIndexONstudent(dno, name);

正确地任用索引:

  • 不要对数据量少的表创建索引。因为读磁盘是以页(8k)为单位进行,如果表数据量只有几个页,索引就没意义。就像很少几页的文章,再给它搞个目录页也没有意义;
  • 对长字符串的字段,例如备注字段,不要创建索引,因为压缩比会小;
  • 对访问频繁的外键(作为查询条件,或者联接运算),应对其创建索引;
  • 对经常作为查询条件、联接运算、排序、分组、UNION,DISTINCT 的字段,对其创建索引;

哈希索引

当往表中添加一行记录时,对要哈希的字段计算哈希值,然后把该记录存储在磁盘空间中磁盘地址为该哈希值的地方。

查询数据行时,用户给出字段值,通过哈希计算,就可发现该记录的磁盘空间地址,直接读到对应的记录,不须要一行一行地去比对;对分布均匀特性的字段,哈希索引可行;例如“学号”字段;

3、连续的磁盘空间

  • 磁盘以片段为单位来存储数据;
  • 一个文件在磁盘上被划分成多个片段,磁盘选取空闲片段来存储表记录; 如果这些片段散布在整个盘面上,磁头就要反复来回走动,效率低。

处理方式

  • 对于表记录,如果连续地存储在一个磁道上,当读数据时,数据就可一个紧挨一个地读到,访问速度就会大大加快;
  • 你的计算机使用一段时间后,感觉明显变慢,也是这个道理;
  • 你可以做磁盘碎片整理,让每个文件的数据在磁盘上连续存储,这样就克服了磁头在盘面空间中到处来回移动,速度大大加快;

4、分类、聚簇

把关系非常紧密,但位于不同表中的行记录,在磁盘上临近存储。当它们做联接运算时,就能迅速得到结果;

5、内存缓冲

我们知道,我们的钱放在银行最可靠,小偷偷不走,也不会丢失。但是,如果每次用钱时,都到银行去取,很费时间(至少要1小时),效率很低。为了提高效率,我们会一次到银行取2000放在口袋里,要用钱时,马上就可拿到,效率极高。

数据存在磁盘上可靠。访问磁盘也是这个道理,很费时间。可事先把数据缓存在内存中,这样数据访问效率和性能就会极大地提高;

6、日志和磁盘分开存储

  • 当日志和数据库配置在一个物理磁盘上时,磁头一会要去数据库区读写要处理的数据,马上又要跳到日志区写日志,接着又要折回数据库区读写要处理的数据。磁头来回长距离倒腾,疲于奔命,
    效率极低,性能极差。
  • 当配置单独的日志磁盘时,正常运行时,日志具有只写不读的特点,而且是递增,磁头可一个挨一个地写,不用来回移动,性能得到极大提高。

底下的两种是完成封装在DBMS中,对数据库设计者和DBA透明

7、查询优化

查询优化并不明白,待探讨

8、并发执行


以上为个人的总结(搬运老师的PPT),有不妥当之处,请在评论中指出。

数据库数据处理性能提升技术相关推荐

  1. DotNET企业架构应用实践-系统架构与性能-缓存技术与ORM中的缓存查询技术

    系列回顾 在前面的文章DotNET企业架构应用实践-系统架构与性能-理论依据及相关做法一文中我介绍了系统性能优化的理论做了一个概括的介绍,也简单的介绍了性能优化的过程及相关的技术关注点或者说是做法. ...

  2. 近数据处理(NDP)——GaussDB(for MySQL)性能提升的秘密

    摘要:云堆栈的深度集成是释放云数据库力量的关键,华为云在实现这一目标方面处于领先地位,正如GaussDB(for MySQL)所证明的那样. 本文分享自华为云社区<近数据处理(NDP),为Gau ...

  3. SQLite性能提升10倍的Web数据库

    作者 | James Long 译者 | 弯月 出品 | CSDN(ID:CSDNnews) 最近我开发了一款名为absurd-sql的SQLite后端.在这款工具的帮助下,你无需将整个数据库加载到内 ...

  4. 性能提升100倍,GaussDB(for MySQL)近数据处理(NDP)解锁查询新姿势

    林舒,20年以上数据库内核研发经验.原IBMDB2数据库内核专家,专长数据库内核性能优化.SQL查询优化.MPP分布式数据仓库技术等.现就职于华为加拿大研究所,全程参与了RDS for MySQL以及 ...

  5. 如何使用有序GUID提升数据库读写性能

    源宝导读:数据库设计时,经常会使用GUID作为表的主键,但由于GUID的随机性会导致数据库在读写数据时效率严重下降,影响应用程序整体性能.本文将深入探讨如何通过使用有序GUID提升数据读写的性能. 一 ...

  6. 全球领先的数据库!我用它直接让公司项目的性能提升了一半~

    阿里云 Redis 从 2015 年商用以来,一直是全球领先的云KV内存数据库产品,自从正式推出云数据库Redis 6.0版本,包含多项重大功能更新和大幅度的性能提升.相比于社区最初多线程版本的设计, ...

  7. 【华为云技术分享】40%性能提升,华为云推出PostgreSQL 12 商用版

    摘要:日前,华为云数据库正式推出了RDS for PostgreSQL 12版本,并开始商用.本文将从华为云RDS for PostgreSQL 12的4大特性和架构图等多方面来解读华为云Postgr ...

  8. 腾讯云数据库开源再突破:TDSQL PG版查询性能提升百倍

    日前,腾讯云数据库开源产品TDSQL PG版(开源代号TBase)宣布推出重磅升级--经过一年半的打磨,上万张表访问场景下,内存占用节省60%:查询性能提升百倍:SQL语句兼容性增强.同时,大力提升原 ...

  9. 华为云数据库内核专家为您揭秘MySQL Volcano模型迭代器性能提升千倍的秘密

    林舒,20年以上数据库内核研发经验.原IBMDB2数据库内核专家,专长数据库内核性能优化.SQL查询优化.MPP分布式数据仓库技术等.现就职于华为加拿大研究所,全程参与了RDS for MySQL以及 ...

最新文章

  1. 树莓派3b+目标检测: tflite 运行 mobilenet ssd
  2. 剑指offer:面试题09. 用两个栈实现队列
  3. openstack--glance
  4. linux——虚拟机的图形安装、管理以及快照
  5. 报名 | CCKS 2021评测任务:生活服务领域知识图谱问答
  6. Orace 12.2 ORA-12012: error on auto execute of job SYS.ORA$AT_OS_OPT_SY_21
  7. 【POJ - 3268 】Silver Cow Party(Dijkstra最短路+思维)
  8. 离线安装Electron
  9. 图片放大缩小旋转左移右移镜像倒影android
  10. public protected private
  11. 商品类别推荐系统:LightGBM模型
  12. 数字信号处理实验三 FIR数字滤波器设计与软件实现
  13. linux yum安装jdk
  14. 天勤2022数据结构(四)数组、矩阵与广义表
  15. Android Studio修改主题设置主题背景图片
  16. idea无法下载源码 Sources not found for: org.springframework:spring-context:5.1.5.RELEAS
  17. zabbix短信告警oracle,zabbix自定义脚本实现短信报警提醒
  18. 继Facebook之后,微软正式宣布:全面进军「元宇宙」
  19. LLDP 链路发现协议
  20. 视觉基础:关于机器视觉、机器学习及人工智能领域

热门文章

  1. php卡片式排版显示,css实现卡片式图片效果
  2. java string to uuid_在JAVA中生成UUID字符串的有效方法(不带破折号的UUID.randomUUID()。toString())...
  3. Non Standard Futures Options
  4. 山东沂蒙农产品交易中心3年交易额26.8亿
  5. 【电子系课设】数字电路课设—知识总结!建议收藏!
  6. 【Echarts】 从入门到自定义封装组件
  7. 僵尸入侵4-菜单和键盘事件
  8. 【计算机视觉】有限标签的场景图预测
  9. rosdep update总是显示time out解决办法。
  10. jquery+video 鼠标滑动标签切换video中的视频资源,暂停未播放视频