比较难掌握的几道数据库面试题及答案
1.行级锁定的缺点:
比页级或表级锁定占用更多的内存。当在表的大部分中使用时,比页级或表级锁定速度慢,因为你必须获取更多的锁。 如果你在大部分数据上经常进行GROUP BY操作或者必须经常扫描整个表,比其它锁定明显慢很多。 用高级别锁定,通过支持不同的类型锁定,你也可以很容易地调节应用程序,因为其锁成本小于行级锁定。
2.MySQL优化
- 开启查询缓存,优化查询
- explain你的select查询, 这可以帮你分析你的查询语句或是表结构的性能瓶颈。EXPLAIN的查询结果还会告诉你你的索引 主键被如何利用的,你的数据表是如何被搜索和排序的
- 当只要一行数据时使用limit 1, MySQL数据库引擎会在找到一条数据后停止搜索,而不是继续往后查少下一条符合记录的数据
- 为搜索字段建索引
- 使用ENUM而不是VARCHAR
- Prepared StatementsPrepared Statements很像存储过程,是一种运行在后台的SQL语句集合,我们可以从使用
prepared statements获得很多好处,无论是性能问题还是安全问题。
Prepared Statements可以检查一些你绑定好的变量,这样可以保护你的程序不会受到“SQL注入式” 攻击
- 垂直分表
- 选择正确的存储引擎
3.key和index的区别
key是数据库的物理结构,它包含两层意义和作用,一是约束(偏 重于约束和规范数据库的结构完整性) ,二是索引(辅助查询 用的)。包括primary key, unique key, foreign key等
index是数据库的物理结构,它只是辅助查询的,它创建时会在另外的表空间(mysql中的innodb表空间) 以-个类似目录的结 构存储。索引要分类的话,分为前缀索引、全文本索引等;
4.Mysql 中MyISAM和InnoDB的区别有哪些?
- InnoDB支持事务, MyISAM不支持
- InnoDB支持外键,而MylSAM不支持。对一个包含外键的InnoDB表转为MYISAM会失败;
- InnoDB是聚集索引,数据文件是和索引绑在一起,必须要有主键,通过主键索引效率高。
- InnoDB不保存 表的具体行数,执行select count(*) from table时需要全表扫描。
- Innodb不支持全文索引,而MyISAM支持全文索引,查询效率上MyISAM要高;
5.数据库表创建注意事项
1、字段名及字段配制合理性
- 剔除关系不密切的字段; 1字段命名要有规则及相对应的含义(不要一部分英文,一部分拼音,还有类似a.b.c这样不明含义的字段) ;
- 字段命名尽量不要使用缩写(大多数缩写都不能明确字段含义) ;
- 字段不要大小写混用(想要具有可读性,多个英文单词可使用下划线形式连接) ;
- 字段名 不要使用保留字或者关键字;
- 保持字段名和类型的一致性;
- 慎重选择数字类型; 给文本字段留足余量;
2、系统特殊字段处理及建成后建议
- 添加删除标记(例如操作人、删除时间) ;
- 建立版本机制;
3、表结构合理性配置
- 多型字段的处理 ,就是表中是否存在字段能够分解成更小独立的几部分(例如:人可以分为男人和女人) ;
- 多值字段的处理,可以将表分为三张表,这样使得检索和排序更加有调理,且保证数据的完整性!
4、其它建议
- 对于大数据字段,独立表进行存储,以便影响性能(例如:简介字段) ;
- 使用varchar类 型代替char,因为varchar 会动态分配长度,char指定长度是固定的; 给表创建主键,对于没有主键的表,在查询和索引定义上有一定的影响;
- 避免表字段运行为null,建议设置默认值(例如: int类型设置默认值为0) 在索引查询上,效率立显; 1建立索引,最好建立在唯-和非空的字段上,建立太多的索引对后期插入、更新都存在一定的影响(考虑实际情况来创建) ;
以上就是“比较难掌握的几道数据库面试题及答案”,你能回答上来吗?
相关文章:
比较难掌握的几道数据库面试题及答案
1.行级锁定的缺点: 比页级或表级锁定占用更多的内存。当在表的大部分中使用时,比页级或表级锁定速度慢,因为你必须获取更多的锁。 如果你在大部分数据上经常进行GROUP BY操作或者必须经常扫描整个表,比其它锁定明显慢很多。 用高…...
AI已经成立社区了,一个个比真人还真
文章目录 nainaimichirper川普的入驻英文版 nainaimi nainaimi是一个13岁的学生,一小时前,被一群人拖到体育馆, 那时的她还很胆小,只能哭诉着那些人的残忍和恶毒 结果半个小时前,她又被拖入了体育馆,这一…...
Qt实现DES ECB加密解密
环境:Windows11 64位 工具链:MinGW32 IDE:Qt 5.14 Qt使用DES加密需要用到OpenSSL库,首先要确定当前使用的Qt所支持的SSL版本。编译OpenSSL 查看当前Qt对OpenSSL的支持情况 qDebug() << QSslSocket::supportsSsl();返回 tr…...
拼多多新阶段,透露出不寻常
一个企业的特质,往往由这个企业的领导人所决定。 企业文化本质上就是领导人文化,领导人的风格会决定这个企业当下的现状。一个成功的大企业,往往需要不同的领导人来接替完成其发展使命。 在创业期,企业领导人需要的是勇气、执行…...
使用底层代码(无框架)实现卷积神经网络理解CNN逻辑
首先将数据集放入和底下代码同一目录中,然后导入一些相关函数的文件cnn_utils.py: import math import numpy as np import h5py import matplotlib.pyplot as plt import tensorflow as tf from tensorflow.python.framework import ops def load_data…...
PID单环控制(位置环)
今天我们来聊一聊pid如何控制轮子转动位置 前期准备调试过程 前期准备 需要准备的几个条件: 1.获取实时编码器的计数值 2.写好pid控制算法的函数 3.设定好时间多久执行一次pid计算,并设置限幅输出。 4.多久执行一次pid输出 接下来我们看看这几个部分的…...
内存基础知识
概述 内存可存放数据。程序执行前需要先将外存中的数据放到内存中才能被CPU处理,因为CPU处理速度过快,而从硬盘读取数据较慢,所以内存是为了缓和CPU和硬盘之间的读取速度矛盾 在多道程序环境下,系统中会有多个程序并发执行&…...
快速入门matlab——运算方法
这是一个matlab神经网络的简单应用,主要用于预测光伏出力,输入为温度湿度等因素,输出为光伏出力 基于Matlab和CPLEX的2变量机组组合调度程序 基于MATLABCPLEX 的机组最优组合,成功求解表格化,图示化的机组组合结果 …...
2009.03-2022.06华证ESG季度评级(季度)
2009.03-2022.06华证ESG评级(季度) 1、时间:2009.03-2022.06.15 2、来源:整理自Wind 3、指标:华证ESG(只有综合评级,无细分评级数据) 4、样本数量:A股4800多家公司 …...
【大数据模型】LeonardoAi让心中所想跃然纸上
汝之观览,吾之幸也! 本文主要聊聊LeonardoAi绘图工具 一、注册Discord账号 不管LeonardoAi还是midjourney,都需要注册一个Discord账号,Discord是一个社区软件,在这里可以进行讨论和交流使用心得 LeonardoAi官网地址 …...
如何区别BI、大数据、信息化和数字化转型
商业智能BI可以实现业务流程和业务数据的规范化、流程化、标准化,打通ERP、OA、CRM等不同业务信息系统,整合归纳企业数据,利用数据可视化满足企业不同人群对数据查询、分析和探索的需求,从而为管理和业务提供数据依据和决策支持。…...
ESP32-C2开发板Homekit例程
准备 1.1硬件ESP32 C2开发板,如图1-1所示 图1-1 ESP32 C2开发板 1.2软件 CozyLife APP可以在各大应用市场搜索下载,也可以扫描二维码下载如图1-2所示 HomeKit flash download tool 烧录工具 esp32c2 homkit演示固件 烧录教程 打开flash_download_to…...
快速搭建一个 Kubernetes+Crane 环境,以及如何基于 Crane 优化你的集群和应用初体验
文章目录 一、活动介绍二、环境搭建三、安装本地的 Kind 集群和 Crane 组件四、界面截图五、主要功能六、整体架构七、Crane的优势八、总结参考文献 一、活动介绍 Crane 是由腾讯云主导开源的国内第一个基于云原生技术的成本优化项目,遵循 FinOps 标准,…...
深度学习图像识别模型:递归神经网络
深度学习是一种人工智能技术,它用于解决各种问题,包括自然语言处理、计算机视觉等。递归神经网络(Recurrent Neural Network,RNN)是深度学习中的一种神经网络模型,主要用于处理序列数据,例如文本…...
上门家教预约小程序开发 良师就在你身边
社会的发展科技的进步让人们对教育的重视度也逐渐升高,很多家长可以说是为了孩子的教育操碎了心。在学校还好有老师辅导,节假日在家的时候,很多家长自己本身文化知识有限或者工作繁忙没有时间辅导,送去辅导班来回接送又很麻烦&…...
CMake Practice 学习笔记五--cmake常用变量
这里列举一些cmake常用变量,后面带**表示常用,了解下,不用全部记住。 1、CMAKE_BINARY_DIR PROJECT_BINARY_DIR ** <projectname>_BINARY_DIR 这三个变量指代的内容是一样的,如果是 in source 编译,指的就是工程顶层目…...
Facebook 广告效果越来越差,怎么办?
在如今的数字营销领域中,Facebook作为独立站卖家首选的推广引流平台,具备了许多优势。 一方面,Facebook拥有庞大的用户数量,是全球最大的社交媒体平台之一。另一方面,Facebook的广告算法可以将广告推送给更加精准的受…...
Netty核心组件模块(三)
1.Netty心跳检测机制 1>.编写网络应用的时候,客户端和服务器端需要通过心跳检测机制来判断对方是否还存活,如果发生了异常,那么需要进行相应的处理; 1.1.案例–编程实现Netty的心跳检测机制 1.1.1.需求 ①.当服务器超过3秒没有读时,就提示读空闲; ②.当服务器超过5秒没有…...
k8s 集群搭建详细教程
参考: Kubernetes 文档 / 入门 / 生产环境 / 使用部署工具安装 Kubernetes / 使用 kubeadm 引导集群 / 安装 kubeadm B. 准备开始 一台兼容的 Linux 主机。Kubernetes 项目为基于 Debian 和 Red Hat 的 Linux 发行版以及一些不提供包管理器的发行版提供通用的指令每…...
国有行面试:掌握这11个测评要素
银行笔试期一结束,面试也接连不断。大家做好拿下offer的准备了吗?回顾过往银行面试,半结构化和无领导题型备受考官喜爱,“有备无患,方能走向远方”,银行面试备考,了解掌握面试本质测评要素&…...
Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...
Keil 中设置 STM32 Flash 和 RAM 地址详解
文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...
根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:
根据万维钢精英日课6的内容,使用AI(2025)可以参考以下方法: 四个洞见 模型已经比人聪明:以ChatGPT o3为代表的AI非常强大,能运用高级理论解释道理、引用最新学术论文,生成对顶尖科学家都有用的…...
C++八股 —— 单例模式
文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...
基于Java+MySQL实现(GUI)客户管理系统
客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息,对客户进行统一管理,可以把所有客户信息录入系统,进行维护和统计功能。可通过文件的方式保存相关录入数据,对…...
无人机侦测与反制技术的进展与应用
国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机(无人驾驶飞行器,UAV)技术的快速发展,其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统,无人机的“黑飞”&…...
Mysql8 忘记密码重置,以及问题解决
1.使用免密登录 找到配置MySQL文件,我的文件路径是/etc/mysql/my.cnf,有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...
【网络安全】开源系统getshell漏洞挖掘
审计过程: 在入口文件admin/index.php中: 用户可以通过m,c,a等参数控制加载的文件和方法,在app/system/entrance.php中存在重点代码: 当M_TYPE system并且M_MODULE include时,会设置常量PATH_OWN_FILE为PATH_APP.M_T…...
【Android】Android 开发 ADB 常用指令
查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...
在树莓派上添加音频输入设备的几种方法
在树莓派上添加音频输入设备可以通过以下步骤完成,具体方法取决于设备类型(如USB麦克风、3.5mm接口麦克风或HDMI音频输入)。以下是详细指南: 1. 连接音频输入设备 USB麦克风/声卡:直接插入树莓派的USB接口。3.5mm麦克…...
