leetcode_database简单题第一遍做后知识补充(一)

2023-11-10 18:32

本文主要是介绍leetcode_database简单题第一遍做后知识补充(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

下面总结来自于《SQL21天自学通》

SQL代码提速问题

全表扫描
数据库服务为执行某一个 SQL 语句需要对表中的每一个记录进行检查时就会发生全表扫描。

全表扫描通常是因为在WHERE子句中使用了索引中没有的字段时发生。

使用全表扫描的的恰当时机:
你选择了一个表中的大多数行的时候,你在对表中的每一行记录进行更新的时候,表非常小的时候

最好在大型表中使用索引

看一下SQL语句中的WHERE子句我们要问的是,是否可以加入其它的索引。如果是在下列条件下,那么答案是肯定的:
最大的限制条件返回表的数据库小于表总数据量的 10%
最大的限制条件在 SQL 语句中是经常使用的
条件列的索引将会返回一个唯一的值
列经常被ORDER BY或GROUP BY子句所引用

也可以使用复合索引,复合索引是基于表中两个或更多列的索引

在查询中各个元素的布局
在WHERE子句中,是根据解释器处理SQL语句的步骤和次序而定的,在条件中安排被索引过的列,这样的条件将会查找最少的记录。

试着调整SQL语句以使它返回的记录数最少。

根据数据库查询优化的读取顺序(技巧:请查看你的数据库文档资料,看一看解释器是如何处理你的SQL语句的),将最大的条件限制语句放在WHERE子句中最先被读到的地方。

过程
如果所使用的查询有规律可循,那么你可以试着使用过程,过程可以调用很大的一组SQL的语句。

避免使用 OR
我们发现 IN 通常比 OR 要快

提速可以使用临时表(先对原始的表进行处理,得到只含有查询所需要的字段)

OLAP与OLTP的比较

在线的分析处理OLAP的数据库是一个对最终用户的查询进行统计和汇总的系统,在这种环境下返回的数据经常用与统计报告给决策管理过程提供帮助。

在线事务过程OLTP的数据库则是一个将主要的功能提供给为最终用户输入服务的环境的系统,包括用户日复一日的查询。
OLTP系统经常用在以日为基本单位在数据库中操作数据的使用场合。
数据仓库与DSS可以从在线的事务处理数据库中得到它们所需的数据,有时也可以从其它的OLAP数据库中得到数据。

OLTP 的调试
ROLLBACK语句需要撤消的内容的量与尺寸是与当前有多少用户在访问数据库相关的。
最好的办法是在一个事务处理的环境中有多个ROLLBACK命令

事务历史记录的完整性,它在每一个事务结束后都会写出。LOGS是为恢复的目的而存在的。

事务记录也会涉及到性能,因为对记录的备份是额外的负荷。

OLAP 的调试
它需要较大的空间用以进行分类
获得有用的用以决策的数据

对于 SQL 语句和数据库而言的一个重要的性能因素是处理的类型和它在数据库中所占
用的空间 一种处理类型为 OLTP

这篇关于leetcode_database简单题第一遍做后知识补充(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/384522

相关文章

MySQL的JDBC编程详解

《MySQL的JDBC编程详解》:本文主要介绍MySQL的JDBC编程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言一、前置知识1. 引入依赖2. 认识 url二、JDBC 操作流程1. JDBC 的写操作2. JDBC 的读操作总结前言本文介绍了mysq

java.sql.SQLTransientConnectionException连接超时异常原因及解决方案

《java.sql.SQLTransientConnectionException连接超时异常原因及解决方案》:本文主要介绍java.sql.SQLTransientConnectionExcep... 目录一、引言二、异常信息分析三、可能的原因3.1 连接池配置不合理3.2 数据库负载过高3.3 连接泄漏

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

MySQL中On duplicate key update的实现示例

《MySQL中Onduplicatekeyupdate的实现示例》ONDUPLICATEKEYUPDATE是一种MySQL的语法,它在插入新数据时,如果遇到唯一键冲突,则会执行更新操作,而不是抛... 目录1/ ON DUPLICATE KEY UPDATE的简介2/ ON DUPLICATE KEY UP

MySQL分库分表的实践示例

《MySQL分库分表的实践示例》MySQL分库分表适用于数据量大或并发压力高的场景,核心技术包括水平/垂直分片和分库,需应对分布式事务、跨库查询等挑战,通过中间件和解决方案实现,最佳实践为合理策略、备... 目录一、分库分表的触发条件1.1 数据量阈值1.2 并发压力二、分库分表的核心技术模块2.1 水平分

Python与MySQL实现数据库实时同步的详细步骤

《Python与MySQL实现数据库实时同步的详细步骤》在日常开发中,数据同步是一项常见的需求,本篇文章将使用Python和MySQL来实现数据库实时同步,我们将围绕数据变更捕获、数据处理和数据写入这... 目录前言摘要概述:数据同步方案1. 基本思路2. mysql Binlog 简介实现步骤与代码示例1

Python 基于http.server模块实现简单http服务的代码举例

《Python基于http.server模块实现简单http服务的代码举例》Pythonhttp.server模块通过继承BaseHTTPRequestHandler处理HTTP请求,使用Threa... 目录测试环境代码实现相关介绍模块简介类及相关函数简介参考链接测试环境win11专业版python

使用shardingsphere实现mysql数据库分片方式

《使用shardingsphere实现mysql数据库分片方式》本文介绍如何使用ShardingSphere-JDBC在SpringBoot中实现MySQL水平分库,涵盖分片策略、路由算法及零侵入配置... 目录一、ShardingSphere 简介1.1 对比1.2 核心概念1.3 Sharding-Sp

MySQL 表空却 ibd 文件过大的问题及解决方法

《MySQL表空却ibd文件过大的问题及解决方法》本文给大家介绍MySQL表空却ibd文件过大的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录一、问题背景:表空却 “吃满” 磁盘的怪事二、问题复现:一步步编程还原异常场景1. 准备测试源表与数据

Mac电脑如何通过 IntelliJ IDEA 远程连接 MySQL

《Mac电脑如何通过IntelliJIDEA远程连接MySQL》本文详解Mac通过IntelliJIDEA远程连接MySQL的步骤,本文通过图文并茂的形式给大家介绍的非常详细,感兴趣的朋友跟... 目录MAC电脑通过 IntelliJ IDEA 远程连接 mysql 的详细教程一、前缀条件确认二、打开 ID