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字符串转数值的方法全解析

《MySQL字符串转数值的方法全解析》在MySQL开发中,字符串与数值的转换是高频操作,本文从隐式转换原理、显式转换方法、典型场景案例、风险防控四个维度系统梳理,助您精准掌握这一核心技能,需要的朋友可... 目录一、隐式转换:自动但需警惕的&ld编程quo;双刃剑”二、显式转换:三大核心方法详解三、典型场景

MySQL中between and的基本用法、范围查询示例详解

《MySQL中betweenand的基本用法、范围查询示例详解》BETWEENAND操作符在MySQL中用于选择在两个值之间的数据,包括边界值,它支持数值和日期类型,示例展示了如何使用BETWEEN... 目录一、between and语法二、使用示例2.1、betwphpeen and数值查询2.2、be

MySQL快速复制一张表的四种核心方法(包括表结构和数据)

《MySQL快速复制一张表的四种核心方法(包括表结构和数据)》本文详细介绍了四种复制MySQL表(结构+数据)的方法,并对每种方法进行了对比分析,适用于不同场景和数据量的复制需求,特别是针对超大表(1... 目录一、mysql 复制表(结构+数据)的 4 种核心方法(面试结构化回答)方法 1:CREATE

SQL Server中行转列方法详细讲解

《SQLServer中行转列方法详细讲解》SQL行转列、列转行可以帮助我们更方便地处理数据,生成需要的报表和结果集,:本文主要介绍SQLServer中行转列方法的相关资料,需要的朋友可以参考下... 目录前言一、为什么需要行转列二、行转列的基本概念三、使用PIVOT运算符进行行转列1.创建示例数据表并插入数

GO语言实现串口简单通讯

《GO语言实现串口简单通讯》本文分享了使用Go语言进行串口通讯的实践过程,详细介绍了串口配置、数据发送与接收的代码实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 目录背景串口通讯代码代码块分解解析完整代码运行结果背景最近再学习 go 语言,在某宝用5块钱买了个

MySQL MHA集群详解(数据库高可用)

《MySQLMHA集群详解(数据库高可用)》MHA(MasterHighAvailability)是开源MySQL高可用管理工具,用于自动故障检测与转移,支持异步或半同步复制的MySQL主从架构,本... 目录mysql 高可用方案:MHA 详解与实战1. MHA 简介2. MHA 的组件组成(1)MHA

SQL 注入攻击(SQL Injection)原理、利用方式与防御策略深度解析

《SQL注入攻击(SQLInjection)原理、利用方式与防御策略深度解析》本文将从SQL注入的基本原理、攻击方式、常见利用手法,到企业级防御方案进行全面讲解,以帮助开发者和安全人员更系统地理解... 目录一、前言二、SQL 注入攻击的基本概念三、SQL 注入常见类型分析1. 基于错误回显的注入(Erro

MySQL基本表查询操作汇总之单表查询+多表操作大全

《MySQL基本表查询操作汇总之单表查询+多表操作大全》本文全面介绍了MySQL单表查询与多表操作的关键技术,包括基本语法、高级查询、表别名使用、多表连接及子查询等,并提供了丰富的实例,感兴趣的朋友跟... 目录一、单表查询整合(一)通用模版展示(二)举例说明(三)注意事项(四)Mapper简单举例简单查询

SpringBoot整合Apache Spark实现一个简单的数据分析功能

《SpringBoot整合ApacheSpark实现一个简单的数据分析功能》ApacheSpark是一个开源的大数据处理框架,它提供了丰富的功能和API,用于分布式数据处理、数据分析和机器学习等任务... 目录第一步、添加android依赖第二步、编写配置类第三步、编写控制类启动项目并测试总结ApacheS

MySQL中的DELETE删除数据及注意事项

《MySQL中的DELETE删除数据及注意事项》MySQL的DELETE语句是数据库操作中不可或缺的一部分,通过合理使用索引、批量删除、避免全表删除、使用TRUNCATE、使用ORDERBY和LIMI... 目录1. 基本语法单表删除2. 高级用法使用子查询删除删除多表3. 性能优化策略使用索引批量删除避免