目录

1.什么是数据库?

关系型数据库

非关系型数据库

2.Mysql出现性能差的原因?

3.MySQL的内联,左外联,右外连接的区别

 4.为什么要有三大范式

建表需要考虑的问题?

char和varchar的区别

blob和text的区别?

DATETIME和TIMESTAMP的区别

in和exists的区别

null值陷

5.记录货币用什么类型比较好

6.怎么存储emoji

7.DROP,DELETE,TRUNCATE的区别?

8.UNION和UNIONALL的区别

9.一条sql的执行流程

10.mysql中bin目录下的执行文件

11.隐式数据类型转换


1.什么是数据库?

数据库是按照数据结构来组织、存储和管理数据的仓库,它是计算机系统中用于高效存储和处理数据的核心组件。分为关系型数据库和非关系型数据库.

关系型数据库

采用关系模型(二维表格结构)来组织数据,强调数据的一致性和完整性,支持 SQL(结构化查询语言)进行操作。

  • MySQL:开源免费,性能稳定,易于部署和使用,是 Web 应用开发中最常用的数据库之一。
  • PostgreSQL:功能强大的开源关系型数据库,支持复杂的数据类型和高级查询,对事务的支持非常完善,适合对数据一致性要求高的企业级应用
  • Oracle:商业级关系型数据库,性能卓越,安全性高,支持大规模数据存储和并发处理,广泛应用于大型企业的核心业务系统,如银行的交易系统、电信的客户管理系统等。
  • SQL Server:微软推出的关系型数据库,与 Windows 系统和.NET 平台兼容性好,适合在微软技术栈环境下开发的应用,如企业内部的管理系统等。

非关系型数据库

  • MongoDB:文档型数据库,数据以类似 JSON 的文档形式存储,结构灵活,适合存储非结构化或半结构化数据,如博客文章、用户评论、产品描述等。
  • Redis:内存数据库,读写速度极快,支持多种数据结构(字符串、哈希、列表、集合等),常被用作缓存、会话存储、实时排行榜等场景。例如,电商网站的商品详情页缓存可以用 Redis 来提升访问速度。
  • Cassandra:分布式列存储数据库,具有高可用性、高扩展性和容错能力,适合处理海量数据,如社交网络的用户行为数据、物联网设备产生的海量日志数据等。
  • Elasticsearch:基于 Lucene 的搜索引擎数据库,擅长全文检索和数据分析,常用于日志分析、商品搜索、企业内部文档检索等场景。

2.Mysql出现性能差的原因?

可能是 SQL 查询使用了全表扫描,也可能是查询语句过于复杂,如多表 JOIN 或嵌套子查询。

也有可能是单表数据量过大。

锁和并发问题

通常情况下,添加索引就能解决大部分性能问题。对于一些热点数据,还可以通过增加 Redis 缓存,来减轻数据库的访问压力。

3.MySQL的内联,左外联,右外连接的区别

连接类型保留哪边的所有行?匹配不到时如何处理?结果集特点
INNER JOIN都不保留直接丢弃只保留两边都匹配上的行
LEFT JOIN保留左表所有行右表补 NULL左表全有,右表补空
RIGHT JOIN保留右表所有行左表补 NULL右表全有,左表补空

 4.为什么要有三大范式

第一范式: 列不可再分(原子性)

第二范式::非主属性必须完全依赖于主键

第三范式:非主属性不能依赖于其他的非主属性

三大范式主要是防止数据冗余 

建表需要考虑的问题?

首先需要考虑表是否符合数据库的三大范式,确保字段不可再分,消除非主键依赖,确保字段仅依赖于主键等。

然后在选择字段类型时,应该尽量选择合适的数据类型。

在字符集上,尽量选择 utf8mb4,这样不仅可以支持中文和英文,还可以支持表情符号等。

当数据量较大时,比如上千万行数据,需要考虑分表。比如订单表,可以采用水平分表的方式来分散单表存储压力。

char和varchar的区别

varchar是可变型的字符类型 char是固定长度

blob和text的区别?

blob是二进制的数据 比如图片,视频,音频等,text是用来存储文本数据

DATETIME和TIMESTAMP的区别

DATETIME 直接存储日期和时间的完整值,与时区无关。默认是null

TIMESTAMP 存储的是 Unix 时间戳,1970-01-01 00:00:01 UTC 以来的秒数,受时区影响。默认是当前的时间

in和exists的区别

in是子查询,将子查询的结果集用于外部内容,适用于结果集较小的情况 

in会有性能瓶颈,因为会建一个临时表 存储到内存中

exists会对外部每一行执行一次子查询,关注点在于子查询是否返回行 是则为ture,适用于子查询结果集比较大的情况 

null值陷

IN: 如果子查询的结果集中包含 NULL 值,可能会导致意外的结果。例如,WHERE column IN (subquery),如果 subquery 返回 NULL,则 column IN (subquery) 永远不会为真,除非 column 本身也为 NULL

EXISTS: 对 NULL 值的处理更加直接。EXISTS 只是检查子查询是否返回行,不关心行的具体值,因此不受 NULL 值的影响。

5.记录货币用什么类型比较好

DECIMAL

6.怎么存储emoji

一般用UTF-8mb4字符集

7.DROP,DELETE,TRUNCATE的区别?

DROP 是物理删除,用来删除整张表,包括表结构,且不能回滚。

DELETE 支持行级删除,可以带 WHERE 条件,可以回滚。

TRUNCATE 用于清空表中的所有数据,但会保留表结构,不能回滚。

8.UNION和UNIONALL的区别

UNION会去重 

9.一条sql的执行流程

SQL 文本↓
[连接器] 认证、维持连接↓
[查询缓存] 8.0 已废弃↓
[解析器] 拆词 → 语法树↓
[预处理器] 语义检查、权限校验↓
[优化器] 选索引、生成执行计划↓
[执行器] 调存储引擎接口↓
[存储引擎] 读磁盘 → 内存 → 返回行↓
客户端收到结果

10.mysql中bin目录下的执行文件

  • mysql:用于连接 MySQL 服务器
  • mysqldump:用于数据库备份,对数据备份、迁移或恢复时非常有用
  • mysqladmin:用来执行一些管理操作,比如说创建数据库、删除数据库、查看 MySQL 服务器的状态等。
  • mysqlcheck:用于检查、修复、分析和优化数据库表,对数据库的维护和性能优化非常有用。
  • mysqlimport:用于从文本文件中导入数据到数据库表中,适合批量数据导入。
  • mysqlshow:用于显示 MySQL 数据库服务器中的数据库、表、列等信息。
  • mysqlbinlog:用于查看 MySQL 二进制日志文件的内容,可以用于恢复数据、查看数据变更等

11.隐式数据类型转换

当一个整数和一个浮点数相加时,整数会被转换为浮点数。

SELECT 1 + 1.0; -- 结果为 2.0

当一个字符串和一个整数相加时,字符串会被转换为整数。

SELECT '1' + 1; -- 结果为 2

隐式转换会导致意想不到的结果,最好通过显式转换来规避

 

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

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

相关文章

Word快速文本对齐程序开发经验:从需求分析到实现部署

在日常办公中,文档排版是一项常见但耗时的工作,尤其是当需要处理大量文本并保持格式一致时。Microsoft Word作为最流行的文档处理软件之一,虽然提供了丰富的排版功能,但在处理复杂的文本对齐需求时,往往需要重复执行多…

力扣面试150(34/150)

7.20 242. 有效的字母异位词 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的 字母异位词 我的思路: 遍历s到一个sMap,字母次数的方式遍历t,判断t中的char是否在sMap当中,如果在的话次数-1,判…

软件工程:可行性分析的任务及报告

简介 本博客围绕软件工程中的第一关——“可行性分析的任务及报告”展开,详细解析了可行性分析的基本概念、分析任务、四类可行性(技术、经济、操作、社会)以及可行性分析报告的结构与撰写要点。通过丰富的理论基础与图示支持,帮…

STM32与树莓派通信

STM32 与树莓派(Raspberry Pi)的通信常见方案及实现步骤:1. UART 串口通信(最简单)适用场景:短距离、低速数据交换(如传感器数据、调试信息)。 硬件连接:STM32引脚树莓派…

【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - 数据持久化到Mysql

大家好,我是java1234_小锋老师,最近写了一套【NLP舆情分析】基于python微博舆情分析可视化系统(flaskpandasecharts)视频教程,持续更新中,计划月底更新完,感谢支持。今天讲解数据持久化到Mysql 视频在线地址&#xff…

【Java EE】多线程-初阶-Thread 类及常见方法

多线程-初阶2. Thread 类及常⻅⽅法2.1 Thread 的常⻅构造⽅法2.2 Thread 的⼏个常⻅属性2.3 启动⼀个线程 - start()2.4 中断⼀个线程2.5 等待⼀个线程 - join()2.6 获取当前线程引⽤2.7 休眠当前线程本节⽬标• 认识多线程• 掌握多线程程序的编写• 掌握多线程的状态• 掌握…

LVS技术知识详解(知识点+相关实验部署)

目录 1.1 LVS简介 1.2 LVS体系结构 1.3 LVS相关术语 1.4 LVS工作模式 1.5 LVS工作原理 1.6 LVS调度算法 2.LVS相关实验部署 2.1 lvs软件相关信息 2.1.1 ipsadm常见参数 2.1.2 试例 2.2 LVS部署NAT模式 2.2.1 实验环境 2.2.2 实验步骤 2.2.2.1 实验基础环境 2.2.…

芋道导入逻辑

一、代码 PostMapping("/import")Operation(summary "导入用户")Parameters({Parameter(name "file", description "Excel 文件", required true),Parameter(name "updateSupport", description "是否支持更新&a…

gradle7.6.1+springboot3.2.4创建微服务工程

目录 一、创建主工程cloud-demo并删除src目录 二、创建子工程user-service/order-service 三、更改父工程build.gradle文件 四、子工程使用mybatis框架 五、子工程使用mybatis-plus框架 六、相关数据库创建 七、最终目录结构 一、创建主工程cloud-demo并删除src目录 二、…

电脑windows系统深度维护指南

🖥️ 电脑系统全方位维护指南 预防故障 提升性能 延长寿命 🔍 引言:为什么需要系统维护? 电脑如同汽车,定期保养可避免: ✅ 突发蓝屏死机 ✅ 系统卡顿崩溃 ✅ 硬件过早损坏 ✅ 数据丢失风险 本指南提供…

字节内部流传的数据分析手册

之前2领导整理内部分享的,所以很多内部业务的分析,比如工作中怎么落地、怎么推进。(数据都是脱敏的哈) **里面的内容都偏应用,比如产品迭代怎么做数据评估、用户增长靠什么指标拆解、AB实验怎么设计、运营活动怎么闭环。**数据分析都是很实际…

Nginx Proxy Manager + LB + Openappsec + Web UI 构建下一代WAF

Nginx Proxy Manager + LB + Openappsec + Web UI部署 一、环境介绍 二、系统参数优化 三、安装docker 四、创建docker网络 五、创建测试容器 六、部署NPM和openappsec 1、下载docker-compose文件 2、拉取相关镜像 3、web UI 获取token 4、修改compose文件并安装 七、登陆NPM配…

【React】npm install报错npm : 无法加载文件 D:\APP\nodejs\npm.ps1,因为在此系统上禁止运行脚本。

使用vsCode打开react项目安装依赖时报错,把terminal打开的powershell改成command prompt即可

深入解析C#装箱转换:值类型如何“变身”为引用类型?

当你将 int i 赋值给 object oi 时, 看似简单的操作背后,藏着一场精密的类型转换革命!🔑 一、核心概念:什么是装箱? 装箱(Boxing) 是C#中的一种隐式转换机制,它将值类型&…

java list 与set 集合的迭代器在进行元素操作时出现数据混乱问题及原因

为什么 List 和 Set 迭代器删除结果不同?1. List 和 Set 的本质差异List(如 ArrayList):有序集合,元素按插入顺序存储,允许重复元素。迭代器遍历时,元素按索引顺序返回。删除操作(通…

大语言模型:人像摄影的“达芬奇转世”?——从算法解析到光影重塑的智能摄影革命

导言在摄影术诞生之初,达芬奇或许无法想象,他对于光影、比例和解剖的严谨研究,会在数百年后以另一种形式重生。今天,当摄影师面对复杂的光线环境或苦苦寻找最佳构图时,一位由代码构筑的“光影军师”正悄然降临——大语…

Java——MyBatis从入门到精通:一站式学习指南

MyBatis从入门到精通:一站式学习指南 作为一款优秀的半自动ORM框架,MyBatis以其灵活的SQL控制和简洁的配置方式,成为Java后端开发中持久层框架的首选。本文将从基础概念到高级特性,全面讲解MyBatis的使用方法,包含实用…

面试150 添加与搜索单词--数据结构设计

思路 通过哈希法去实现,这里主要描述search的思路:如果’.‘不在word中,我们只需要去查询word在不在set中。如果’.‘存在,我们对哈希中的字符串进行遍历w,如果当前字符串的长度不等于word跳过,对word进行遍历&#xf…

学习打卡网站(搭子版本)

概述 之前用了网上的一些学习打卡类app,基本都是收费的,而且有些自己想要的功能却没有,甚至还有广告,正好暑假是个需要容易懒惰的时间,所以干脆自己做了一个能和学习搭子一起记录计划的小网站。 昨天早上开始写&#x…

分享如何在Window系统的云服务器上部署网站及域名解析+SSL

最近看到阿里云的服务器有个199的活动,买了个2核4G带宽5M的服务器,用于小网站的运营也足够,于是就买一个,并且我还挑了个新加坡的站点,本想着运营独立站,用新加坡的站点外网访问会更友好一点。于是问题就来…