数据库基础

数据仓库【基础架构】 1、基本概念 1.1什么是数据库 1.2 什么是数据仓库 1.3 数据库(OLTP)与数据仓库(OLAP)的区别 2、基础架构 3、架构演进 4、逻辑分层 5、数据调研 6、主题域划分 7、数仓规范 8、数据治理 9、数仓理念 阅读详情

数据库三范式

开发中应严格遵循数据库三范式

  • 第一范式:每个列都不可以再拆分。
  • 第二范式:在第一范式的基础上,非主键列完全依赖于主键,而不能是依赖于主键的一部分。
  • 第三范式:在第二范式的基础上,非主键列只依赖于主键,不依赖于其他非主键。

数据库索引:

  • 索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。
  • 索引是一种数据结构。数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据。索引的实现通常使用B树及其变种B+树。
  • 更通俗的说,索引就相当于目录。为了方便查找书中的内容,通过对内容建立索引形成目录。索引是一个文件,它是要占据物理空间的。

创建(优先考虑where、group by使用到的字段)

  • 多个条件时可以创建多列索引,比多个单列索引效率高
  • 让选择性最强的索引列(能排除更多记录的列)放在前面
  • 对于BLOB、TEXT 和 VARCHAR类型的列,加前缀索引
  • 覆盖索引:满足查询语句中所有字段与条件,这样可以直接在索引中查询,而不用再到数据库读取了

注意

  • MySql在使用like进行模糊查询的时候把%放后面,避免开头模糊查询,因为MySql在使用like查询的时候只有使用后面的%时,才会使用到索引。
  • 尽量避免使用in 和not in,会导致数据库引擎放弃索引进行全表扫描,可使用exists代替
  • 尽量避免使用or,会导致数据库引擎放弃索引进行全表扫描,可使用union代替
  • 尽量避免进行null值的判断,会导致数据库引擎放弃索引进行全表扫描,可以给字段添加默认值0,对0值进行判断
  • 尽量避免在where条件中等号的左侧进行表达式、函数操作,会导致数据库引擎放弃索引进行全表扫描,可以将表达式、函数操作移动到等号右侧
  • 当数据量大时,避免使用where 1=1的条件。通常为了方便拼装查询条件,我们会默认使用该条件,数据库引擎会放弃索引进行全表扫描

索引的优点

  • 可以大大加快数据的检索速度,这也是创建索引的最主要的原因。
  • 通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。

索引的缺点

  • 时间方面:创建索引和维护索引要耗费时间,具体地,当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,会降低增/改/删的执行效率;
  • 空间方面:索引需要占物理空间。

SQL优化

索引优化

  • 优点:建立索引后,查询时不会扫描全表,而会查询索引表锁定结果。
    • 缺点:在数据库进行DML操作的时候,除了维护数据表之外,还需要维护索引表,运维成本增加。
    • 应用场景:数据量比较大,查询字段较多的情况。

查询优化

  • Explain 用来分析 SELECT 查询语句,开发人员可以通过分析结果来优化查询语句。
  • 只返回必要的列:最好不要使用 SELECT * 语句。
  • 只返回必要的行:使用 LIMIT 语句来限制返回的数据。
  • 给经常要被查询的数据设置缓存

重构查询

  • 切分大查询:一个大查询如果一次性执行的话,可能一次锁住很多数据、占满整个事务日志、耗尽系统资源、阻塞很多小的但重要的查询。
  • 分解大连接查询:将一个大连接查询分解成对每一个表进行一次单表查询,然后在应用程序中进行关联,这样做的好处有:
  • 让缓存更高效:对于连接查询,如果其中一个表发生变化,那么整个查询缓存就无法使用。而分解后的多个查询,即使其中一个表发生变化,对其它表的查询缓存依然可以使用。
  • 分解成多个单表查询,这些单表查询的缓存结果更可能被其它查询使用到,从而减少冗余记录的查询。
  • 减少锁竞争。
  • 在应用层进行连接,可以更容易对数据库进行拆分,从而更容易做到高性能和可伸缩。
数据仓库基础知识 数据仓库基础知识介绍 阅读详情

相关推荐

ROS2实战:构建模块化启动文件(launch file)以驱动复杂机器人系统

本文详细介绍了ROS2中构建模块化启动文件(launch file)的最佳实践,帮助开发者高效管理复杂机器人系统的节点启动。通过功能分解、参数化设计和嵌套启动等技术,实现批量管理、依赖控制和配置统一,显著提升系统稳定性和调试效率。文章包含实战代码示例和工程化建议,特别适合自动驾驶、物流机器人等场景应用。

weixin_28744613的博客 217

数据库查询(主键作为条件)

select * from tablename where Id =(select max(id) from tablename where 字段='xxx‘);

weixin_34248023的博客 873

vcs 覆盖率收集1——三种覆盖率类型、covergroup、bins、数据采样、覆盖率选项

介绍各种覆盖率,以及如何编写覆盖率收集的代码

qq_42135020的博客 1万+

关于Sql中尽量避免用的查询语句(in....

一般不要用如下的字句:  "IS NULL", " ", "!  "NOT", "NOT EXISTS", "NOT IN", "NOT LIKE", and "LIKE '%500'", 因为他们不走索引全是表扫描。也不要在WHere字句中的列名加函数,如Convert,substring等,如果必须用函数的时候,创建计算列再创建索引来替代.还可以变通写法:WHERE SUBSTRING(

wendy专栏 5853

亚马逊商品评论爬取与情感分析实战:Python+BeautifulSoup高效解析(附反爬技巧)

本文详细介绍了使用Python和BeautifulSoup库高效爬取亚马逊商品评论并进行情感分析的完整实战流程。文章从环境搭建、核心代码编写入手,重点讲解了如何通过设置请求头、添加延迟等防封策略应对反爬机制,确保数据抓取的稳定性。最后,利用TextBlob库对评论文本进行情感分析,并通过可视化图表直观展示产品口碑,为电商选品与市场调研提供数据支持。

weixin_29046611的博客 1164

进阶数据结构——链式前向星

链式前向星是一种进阶的数据结构,主要用于图的存储。我希望大家先看这个视频(蓝色字体点进去) 不然你很难理解的。在图论中,图的存储方式主要有邻接矩阵和邻接表两种。邻接矩阵虽然建图简单方便,但占内存较大,节点数量稍微大点的题目就难以使用(适合稠密图);而邻接表虽然节省空间,但其指针形式难写易错,且vector形式的读取速度较慢,易导致大数据下的超时(TLE)。针对上述问题,链式前向星作为一种折中的方式应运而生。链式前向星本质上是一种静态链表,它将数据以链表形式连接在一起。

ycs66的博客 2138

基于对象的数据筛选与排序(一)

可能大家对于数据库的操作太过于熟悉了,以至于忘记.Net提供的强大而灵活的数据操作。例如,当我们想对数据进行筛选时,首先想到的是“Where”而不是List<T>.FindAll();当我们想对数据进行排序时,首先想到的是“Sort”而不是List<T>.Sort();当我们想对数据进行分页时,首先想到的是存储过程,而不是List<T>.GetRange()。。。 当然在这里并不是要指明数据库的直接

Karigurashi的博客 1186

避坑指南:vue-print-nb打印隐藏元素与空白页的那些事儿

本文深入解析了使用vue-print-nb插件时,打印出现空白页及隐藏元素问题的根本原因与解决方案。核心在于理解浏览器打印原理,并通过CSS媒体查询精准控制样式。文章提供了从重置根元素高度、处理隐藏元素到控制分页的完整避坑指南,帮助开发者彻底解决打印样式难题。

weixin_29008691的博客 437

不能用in的情况下查询数据

select t.cus_uid  from trade t left join custom c  on t.cus_uid=c.cus_uid   and t.com_uid=c.com_uid   and t.com_uid='583FE1FC0E653BD5BEADC372D5DAC02E'  where  t.com_uid='583FE1FC0E653BD5BEADC372D5D...

fengbin2005 187

【机器学习-17】数据变换---小波变换特征提取及应用案列介绍

小波变换作为一种前沿的数据分析工具,近年来在信号分析领域崭露头角。小波分析的理论和方法凭借其独特优势,在信号处理、图像处理、语音处理、模式识别以及量子物理等多个领域得到了广泛的应用,堪称近年来在工具及方法上的重大突破。小波变换以其多分辨率的特性,在时域和频域均展现出对信号局部特征的强大表征能力。通过伸缩和平移等运算过程,小波变换能够对信号进行多尺度聚焦分析,为非平稳信号的时频分析提供了一种有效手段。它允许我们由粗及细地逐步观察信号,从而精准地提取出有用信息。

qq_38614074的博客 2万+

别把 ABAP 时间戳当数字算:TIMESTAMP / TIMESTAMPL 的语义、正确用法与项目级避坑指南

ABAP时间戳使用指南与常见陷阱 摘要:ABAP中的时间戳(TIMESTAMP/TIMESTAMPL)本质是UTC时间的数字表示,而非累计秒数。正确用法包括:直接比较时间戳顺序、使用CONVERT TIME STAMP进行时区转换、通过CL_ABAP_TSTMP计算时间差。关键注意事项:绝对不要对时间戳本身进行数学运算,否则会导致非法时间值。实际项目中需特别注意SAP Gateway的ETag处理、跨时区系统集成和CDS视图中的时间戳使用场景,避免将本地时间误存为UTC时间戳或在云迁移时产生时区问题。(14

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 347

db数据库, Database基础

catalogvarchar类型的cmp varchar类型的cmp WHERE age >= '5'; '他会得到: 5, 6, 7, 8, 9, 50, 51, .., 60, 61, ...' '即,他是 比较 字典序的!!!! 例如:10,20,30,40,100, 200是得不到的!!!' 但,如果你的age 都是'完全相同的长度',那么此时的 字典序==Int数值大小 即,你在存入数据库时,存入: 001, 018, 050 那么,你的WHERE age>='5' AND

WChang的博客 1068

Claude Code 错误解决方案 使用策略拒绝 Usage Policy refusal

摘要:本文分析了Claude Code API请求被拒绝的问题,当违反Usage Policy时会显示错误提示。根因包括请求内容违规、模型敏感度差异或历史消息影响。解决方案包括修改请求措辞、切换至Sonnet 4.5模型或开启新会话。文章详细追踪了错误链路,提供了核心代码分析,并给出验证方法和最佳实践建议,帮助用户避免触发API拒绝机制。

多媒体编程、网络编程、系统编程、网络安全编程、驱动编程 990

数据仓库基础知识总结

总的来说,数据中台距离业务更近,数据复用能力更强,能为业务提供速度更快的服务,数据中台在数据仓库和数据平台的基础上,将数据生产为一个个数据API服务,以更高效的方式提供给业务。2)逻辑模型LDM:逻辑模型反映的是系统分析人员对数据存储的观点,是对概念模型的进一步分解和细化,逻辑模型是根据业务规则确定的,关于业务对象,业务对象的数据项以及业务对象之间关系的基本蓝图。面向主题的数据组织方式,就是在较高层次上对分析对象的数据的一个完整并且一致的描述,能刻画各个分析对象所涉及的企业各项数据,以及数据之间的联系。

qq_22201881的博客 1822

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

数据仓库基础

本篇笔记仅记录数据仓库的理论知识以及相关技术概念介绍。 数据仓库是一个面向主题的、继承的、非易失的且随时间变化的数据集合。主要用于组织积累的历史数据,并使用分析方法(OLAP、数据分析)进行分析整理,进而辅助决策,为管理者、企业系统提供数据支持。

老程的小白博客空间 2456

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

数据仓库 基础教程

数据仓库(Data Warehouse,简称DW或者DWH)是通过集成来自多个异构数据源的数据来构建的。它支持分析报告、结构化和/或特别查询和决策制定。本教程采用循序渐进的方法来解释数据仓库的所有必要概念。

qq_42577508的博客 1175

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

linux之database(数据库基础)三

linux之database(数据库基础) 01: 数据库服务概述 、 构建MySQL服务 、 数据库基本管理 、 MySQL数据类型 02: 表结构 、 MySQL键值 03: 数据导入导出 、 管理表记录 、 匹配条件 、 MySQL管理工具 04: 用户授权 、 完全备份 、 增量备份 05: percona软件介绍 、 innobackupex备份与恢复 文章目录linux之database(数据库基础)数据导入导出 、 管理表记录 、 匹配条件 、 MySQL管理工具案例1:数据导入导出问题一:

weixin_43051805的博客 796

MySQL夯实基础2: 使用SQL语句操作MySQL数据库DATABASE

数据库可以看作是一个专门存储数据对象的容器。这里的数据对象包括表、视图、触发器、存储过程等,其中表是最基本的数据对象。5 删除数据库,其中的数据同步被删除(单机用户除外)1 创建数据库, 并指定数据库字符集和校对规则。3 查看当前可用的所有数据库列表 (复数s)存储数据库相关的信息的系统数据库,如。2 修改数据库的字符集及其校对规则。等,否则MySQL将不能正常工作。4 选择指定的数据库 【常用】

YunYingLiang的博客 350

Hive数据仓库基础

数据仓库的英文名称为Data Warehouse,可简写为DW或DWH。数据仓库的目的是构建面向分析的集成化数据环境,为企业提供决策支持(Decision Support)。它出于分析性报告和决策支持的目的而创建。数据仓库本身并不“生产”任何数据,同时自身也不需要“消费”任何的数据,数据来源于外部,并且开放给外部应用,这也是为什么叫“仓库”,而不叫“工厂”的原因。数据库与数据仓库的区别实际讲的是OLTP 与 OLAP 的区别。操作型处理,叫联机事务处理 OLTP(On-Line Transaction Pr

a1007904449的博客 822

Database_数据库基础笔记整理

1、避免全表扫描,请勿使用*号,以防返回大量的数据; 2、避免使用!=或<>操作符在where子句中,避免全表扫描: 3、请勿在where子句中将表达式或函数放在比较符号的左侧,以防全表扫描; 例:xx where score + 10 > 60; 优化:xx where score > 60 – 10; 4、使用limit限制查询返回的数据行数,限制不需要的数据...

Tingshuo2009的博客 953

Java学习-数据库DB基础篇

一、概述: 1.数据库(DateBase,DB):数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据进行增加,修改,删除及查询操作。 2.数据库管理系统(DataBase Management System,DBMS):指一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用...

Jagger_Lin的博客 1796

如何零SQL基础管理数据库?DB Browser for SQLite完整指南

你是否曾经面对一个SQLite数据库文件却无从下手?复杂的SQL语句让你望而却步,而命令行操作又显得过于技术化?DB Browser for SQLite正是为解决这一痛点而生的终极SQLite数据库可视化工具。作为一款完全开源免费的跨平台SQLite管理软件,它能让你无需编写任何SQL代码就能轻松管理数据库,真正实现零SQL基础操作数据库。无论你是开发者、数据分析师还是普通用户,都能通过直观的图

gitblog_00605的博客 158

[Database] 数据库基础

目录什么是数据库?主流数据库基本使用MySQL安装连接服务器SQL分类存储引擎服务器,数据库,表关系具体使用 什么是数据库? 随着信息时代的推进与产品的快速更迭,数据存储的方式更是琳琅满目(网盘、优盘等),那么数据库存在的意义是什么? 文件保存数据有以下几个缺点: 文件的安全性问题 文件不利于数据查询和管理 文件不利于存储海量数据 文件在程序中控制不方便 为了解决上述问题,专家们设计出更加利于...

giturtle's blog 750

零基础入门:用DB Browser轻松管理你的第一个SQLite数据库

他们的在线编辑器内置了数据库功能,配合DB Browser导出导入数据特别方便,遇到问题时还能用AI辅助分析SQL语句,比本地调试省心多了。作为一个刚摸索明白的小白,记录下自己的学习过程,希望能帮到同样零基础的朋友们。安装完成后桌面会出现熊猫图标,第一次打开时可能会提示安装SQLite驱动,按指引操作就行。:软件内置的「示例数据库」功能超实用,在帮助菜单里可以找到预置的Chinook数据库,包含完整的表关系和测试数据。:每次操作后可以点击「检查」按钮,如果SQL语法有错误会明确提示,对新手特别友好。

StarfallRaven13的博客 1556

三分钟上手DB Browser for SQLite:零SQL基础也能轻松管理数据库

还在为复杂的SQL语法头疼吗?DB Browser for SQLite(简称DB4S)让你用电子表格的直观体验管理SQLite数据库,无需任何SQL基础就能轻松上手。这款完全免费的开源工具,将专业的数据库管理变得像操作Excel一样简单直观,是开发者和数据分析师的得力助手。 ## 为什么你需要这款SQLite数据库管理工具? 无论你是移动应用开发者、数据分析师,还是需要处理小型数据库的普通用

gitblog_00357的博客 136
上一篇: HTTP相关
下一篇: Kafka
fufucen
博客等级 码龄8年 2粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值