数据库优化指南:如何将基本功能运用到极致?

一次问题

     数据库的归档日志很多,多到那个机器的硬件不足以处理了。查看了一下为什么产生这么多日志。发现其实都是一些不当的使用方式。比如开发人员建立了一个xxxx_temp从这么名字上就应该能猜出来这是要做什么?美其名曰是临时表。

      就是导入一批数据,给这些数据做一系列加工(运算),然后再把这些数据删除。用SQL来描述,就是insert 1亿,update 1亿,再delete 1亿。(这里说的1亿是虚数)最终表上是0行数据,但是日志产生了3亿行的操作日志。其实不应该这样用的。如果了解数据库原理就不会这样做。

正确示例

图片

mmm表和xxg2表都是空的。

图片

给xxg2表写入两条数据。

图片

然后把xxg2表的临时数据最终放到mmm表中。然后提交。

图片

     最终mmm表中的数据达成预期落地了。而xxg2表作为临时表。被清空了。整个过程不需要对xxg2表做delete。也就不会产生对应的归档。

      当然在xxg2表上的insert和update也几乎不会产生日志,或者可以忽略所谓产生的日志。这样对数据库的压力就小很多。无效的工作都不需要记录了。

区别是全局临时表

create global temporary table xxg2 (id int ,name varchar2(10)) on commit DELETE ROWS;

     这是真正的临时表,而日常开发同学建立的都是临时性质的表。这一点无论Oracle、MySQL还是PG上都是这样做。那是因为开发同学不懂也不知道数据库的临时表应该怎么做。

看上去是炒冷饭不是新功能,但是就是这样的旧功能都没用好

       很多数据库的功能仅仅DBA掌握是没有用的。要让开发掌握这才能用好。只在DBA手中的特性是发挥不出来的。我讲完这些旧特性,开发同学非常高兴的走了,去体会和实践了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/885107.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

150道MySQL高频面试题,学完吊打面试官--关于索引的五道大厂面试题,跳槽面试很重要

前言 本专栏为150道MySQL大厂高频面试题讲解分析,这些面试题都是通过MySQL8.0官方文档和阿里巴巴官方手册还有一些大厂面试官提供的资料。 MySQL应用广泛,在多个开发语言中都处于重要地位,所以最好都要掌握MySQL的精华面试题,这也…

自攻螺钉的世纪演变:探索关键设计与应用

自攻螺钉作为现代工业和建筑中的不可或缺的标准部件,经过了超过100年的发展和创新。从1914年最早的铁螺钉设计到今天的自钻自攻螺钉,自攻螺钉的设计不断优化,以适应更复杂的应用需求。本文将回顾自攻螺钉的演变历程,分析其设计原理…

用Java实现获取视频文件的总时长

太久没有更新了~今天来更新一篇简单的小需求。 最近哈猿需要实现在后台读取到某个视频文件的总时长,也就是: 在Java中实现获取视频文件的总时长 确定了需求,那当然就是直接在网上找方案了。的确,网上的方案有很多,大…

【一些关于Python的信息和帮助】

Python是一种广泛使用的高级编程语言,它的设计哲学强调代码的可读性和简洁的语法(尤其是使用空格缩进划分代码块,而不是使用大括号或关键字)。Python支持多种编程范式,包括面向对象、命令式、函数式和过程式编程。 以…

【KMP算法】

目录 BF算法 KMP算法 BF算法 F算法,即暴力(Brute Force)算法,是普通的模式匹配算法,BF算法的思想就是将目标串S的第一个字符与模式串T的第一个字符进行匹配,若相等,则继续比较S的第二个字符和 T的第二个字符&#xf…

快速学习Django框架以开发Web API

简介 Django是一个高级Python Web框架,它鼓励快速开发和简洁实用的设计。由经验丰富的开发者构建,Django可以为你处理大量的Web开发任务,使你能够专注于编写应用的关键组件。Django的模块化设计、可复用性和广泛的社区支持,使其成为开发Web应用和API的理想选择。 在本文中…

论文 | Evaluating the Robustness of Discrete Prompts

论文《Evaluating the Robustness of Discrete Prompts》深入探讨了离散提示(Discrete Prompts)的鲁棒性,即离散提示在自然语言处理任务中面对不同扰动时的表现。研究特别关注离散提示在自然语言推理(NLI)任务中的表现…

2024中国国际数字经济博览会:图为科技携明星产品引领数智化潮流

10月24日,全球数智化领域的目光齐聚于中国石家庄正定,一场关于数字经济未来的盛会—2024中国国际数字经济博览会在此拉开帷幕。 云边端算力底座的领航者,图为科技携其明星产品惊艳亮相,期待与您共赴一场数智化的非凡之旅&#xff…

7.2、实验二:被动接口和单播更新

源文件链接: 7.2、实验二:被动接口和单播更新: https://url02.ctfile.com/d/61945102-63671890-6af6ec?p2707 (访问密码: 2707) 一、被动接口 1.介绍 定义: 在路由协议的配置中,一个被动接口指的是一个接口不发送路由更新包的配置方式&a…

4.3 Linux的中断处理流程

点击查看系列文章 》 Interrupt Pipeline系列文章大纲-CSDN博客 原创不易,需要大家多多鼓励!您的关注、点赞、收藏就是我的创作动力! 4.3 Linux的中断处理流程 先上图,一图胜千言! 图中心的蓝色部分,是L…

深度学习:循环神经网络(RNN)详解

循环神经网络(RNN)详解 **循环神经网络(Recurrent Neural Network, RNN)**是一类能够处理序列数据的神经网络,其设计使得网络可以在每个时间步上保留先前时间步的信息。RNN通过在时间步之间共享参数,能够建…

告别项目混乱,自定义工作项类型驱动项目管理进化

在项目管理中,工作项类型是用于分类和管理项目任务的基本构建块。如瀑布管理和敏捷管理,都有其特定的工作项类型来支持其独特的流程和实践: 敏捷管理的工作项类型 敏捷管理中的工作项类型强调迭代和增量开发,以用户故事为核心&a…

JAVA学习日记(十一) 常用API

一、Math //开平方根 public static double sqrt(double a); //返回结果 //开立方根 public static double cbrt(double a); 水题: public class Main {public static void main(String[] args) {//统计一共有多少个水仙花数 : abca^3b^3c^3abc// aabc/100%10//…

C++ 的异常处理详解

C 的异常处理详解 在编程过程中,错误和异常是不可避免的,合理的异常处理机制能够提高程序的健壮性。在 C 中,异常机制为捕获和处理错误提供了一种结构化的方式。本文将对 C 的异常处理进行详细探讨,包括异常的概念、如何抛出和捕…

IP协议知识点总结

IP协议主要分为三个 1. 地址管理 每个网络上的设备, 要能分配一个唯一的地址 2. 路由选择 小A 给小B 发消息, 具体应该走什么路线 3. 地址管理 IP 地址. 本质上是一个 32 位的整数 通常将, 32 位的整数使用点分十进制来表示, 如 192.168.1.1 一共可以表示 42 亿 9 千万个地址…

Linux之selinux和防火墙

selinux(强化的linux) 传统的文件权限与账号的关系:自主访问控制,DAC; 以策略规则制定特定程序读取特定文件:强制访问控制,MAC SELinux是通过MAC的方式来控制管理进程,它控制的主…

一个百度、必应搜索引擎图片获取下载的工具包

前言:前段时间需要一大批图片,跑去百度搜图下载,发现特别麻烦,于是用了一天时间写了一个工具库,方便后续使用,这里分享给大家 imagecapture 是一个用 Go 语言编写的库,旨在从百度和必应等搜索引…

秒杀优化(异步秒杀,基于redis-stream实现消息队列)

目录 秒杀优化一:异步秒杀1:思路2:实现 二:redis实现消息队列1:什么是消息队列2:基于list结构实现消息队列3:基于pubsub实现消息队列4:基于stream实现消息队列5:stream的…

小新学习k8s第六天之pod详解

一、资源限制 Pod是k8s中的最小的资源管理组件,pod也是最小化运行容器化应用的资源对象。一个Pod代表着集群中运行的一个进程。k8s中其他大多数组件都是围绕着Pod来进行支撑和扩展Pod功能的,例如,用于管理Pod运行的StatefulSet和Deployment等…

Java企业级开发系列(1)

Spring Framework入门指南:从零开始构建企业级应用 🚀 🎯 掌握Spring框架,助你成为Java企业级开发高手! 在上一篇文章中,我们学习了Java入门系列的最后一篇文章–Java反射机制。今天开始,让我们…