基础面试题整理4

news2024/12/23 6:01:21

1.mybatis的#{}和${}区别

  • #{}是预编译处理,${}是字符串替换
  • #{}可以防止SQL注入,提高安全性

2.mybatis隔离级别

读未提交 READ UNCOMMITED:读到了其他事务中未提交的数据,造成"脏读","不可重复读","幻读";

读已提交 READ COMMITED:大多数数据库的默认隔离级别,MySQL不是;造成"不可重复读","幻读";

可重复读 REPEATABLE READ:保证同一事务的多个实例在并发下读取数据相同;造成"幻读";

可串行化 SERIALIZABLE:在每个读的数据加锁;

3.mysql复制原理

  1. master将数据的改变记录到二进制binlog日志;
  2. slave会定时对master的二进制日志进行查看是否发生变化,若发生变化,则开一个I/O线程读取二进制日志文件并保存到当前服务器中的中继文件relay log;
  3. 同时slave也会开一个SQL线程读取中继日志文件relay log,并解析SQL语句逐一执行;

4.MySQL聚簇与非聚簇索引区别

mysql的索引类型与存储引擎有关;索引是存储在磁盘中;

innodb存储引擎数据文件和索引文件是存储在ibd文件中,而myisam的数据文件在myd文件,索引在myi文件,表结构在frm文件;

可以看到在mysql目录下存在多个frm-myd-myi文件,此时为myisam引擎

在ccb目录下存在多个frm-ibd文件,此时为innodb引擎

与数据绑定在一起的都是聚簇索引,所以myisam是非聚簇索引,innodb既是聚簇索引又是非聚簇索引(表含有多个索引)。innodb引擎在数据插入时,数据与索引是绑定到一起的,有主键优先主键,其次是唯一键,最后是6字节的rowid。当某表含有多个索引时,数据必然只存储一份,与数据绑定到一起的是聚簇索引,其他索引存储的是聚簇索引的key值。

5.mysql索引的基本原理

索引作用:为了加快数据库查询速度

mysql索引的数据结构:B+Tree(innodb引擎)、Hash(memory引擎)

B+Tree:平衡多叉树

Hash:动态数组+链表 详见hash算法

若等值查询,hash索引有优势,因为等值匹配可得到下标,进而去动态数组找到对应数据;

若范围查询,B+Tree有优势,因为首先没有下标,其次B+Tree搜索时,速度可以快一半;

6.mysql锁的类型

  • 锁的属性:共享锁(读锁)、排它锁(写锁)
  • 锁的粒度:行级锁(行)、表级锁(整张表)、页级索(页[4kb/8kb]的整数倍)、记录锁(一行数据)、间隙锁、临键锁

7.mysql执行计划

关键字:EXPLAIN

执行计划包含信息:ID(主键)、table(表名)、type(执行类型)、key(实际用到索引)、rows(预估数据量)、extre(额外信息)

  • ID相同,执行顺序从上到下;ID不同,值越大优先执行;
  • type效率从好到坏顺序:system>const>ref>index_subquery>range>index>all

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

DBA技术栈(三):MySQL 性能影响因素

文章目录 前言一、影响MySQL性能的因素1.1 商业上的需求1.2 应用架构规划1.3 查询语句使用方式1.4 Schema的设计1.5 硬件环境 总结 前言 大部分人都一致认为一个数据库应用系统(这里的数据库应用系统概指所有使用数据库的系统)的性能瓶颈最容易出现在数…

ssm+vue的物流配送人员车辆调度管理系统的设计与实现(有报告)。Javaee项目,ssm vue前后端分离项项目。

演示视频: ssmvue的物流配送人员车辆调度管理系统的设计与实现(有报告)。Javaee项目,ssm vue前后端分离项目。 项目介绍: 采用M(model)V(view)C(controller&…

day-10 删除排序链表中的重复元素

思路 先统计每个值出现的次数,然后将出现次数为一的节点链接为一个链表即可 解题方法 while(t!null){ //统计每个值出现次数 arr[t.val100]1; tt.next; } while(t!null&&arr[t.val100]!1) tt.next;//确定返回的头结点 ttt; while(t!null&&t.next…

虾皮广告数据:​如何利用广告数据优化虾皮(Shopee)销售业绩

在虾皮(Shopee)平台上,广告数据对于卖家来说是至关重要的,它可以帮助卖家了解广告的效果并进行相应的优化。通过监控和分析这些广告数据,卖家可以更好地理解广告的表现,调整广告策略,提高广告的…

QT DAY4作业

1. 头代码 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTimerEvent> #include <QTime> #include <QTextToSpeech>namespace Ui { class Widget; }class Widget : public QWidget {Q_OBJECTpublic:explicit Widget(QWidget *par…

案例129:基于微信小程序的外卖商城平台设计与实现

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;SSM JDK版本&#xff1a;JDK1.8 数据库&#xff1a;mysql 5.7 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder X 小程序…

Untiy HTC Vive VRTK 开发记录

目录 一.概述 二.功能实现 1.模型抓取 1&#xff09;基础抓取脚本 2&#xff09;抓取物体在手柄上的角度 2.模型放置区域高亮并吸附 1&#xff09;VRTK_SnapDropZone 2&#xff09;VRTK_PolicyList 3&#xff09;VRTK_SnapDropZone_UnityEvents 3.交互滑动条 4.交互旋…

由于找不到mfc120u.dll,无法继续执行代码重新安装程序可能会解决问题

mfc120u.dll是一个动态链接库文件&#xff0c;它属于Microsoft Foundation Class&#xff08;MFC&#xff09;库的一部分。MFC库是微软公司为开发Windows应用程序而提供的一个C类库&#xff0c;它包含了许多常用的控件、对话框、消息处理等功能&#xff0c;可以帮助开发者快速构…

ENVI5.6版本中规则与不规则图像裁剪操作

图像裁剪的目的是将研究之外的区域去除&#xff0c;常用的是按照行政区划边界或自然区划边界进行图像的裁剪&#xff0c;在基础数据生产中&#xff0c;还经常要做标准分幅裁剪。按照ENVI的图像裁剪过程&#xff0c;可分为规则裁剪和不规则裁剪。 ENVI5.6之前版本的图像裁剪工具…

持久双向通信网络协议-WebSocket-入门案例实现demo

1 介绍 WebSocket 是基于 TCP 的一种新的网络协议。它实现了浏览器与服务器全双工通信——浏览器和服务器只需要完成一次握手&#xff0c;两者之间就可以创建持久性的连接&#xff0c; 并进行双向数据传输。 HTTP协议和WebSocket协议对比&#xff1a; HTTP是短连接&#xff0…

python如何读取excel表格数据

文章目录 excel的格式xls格式文件xlrdxlwtexcel读取xls类型数据三个方法 xlsx格式文件openpyxl excel的格式 excel有xls和xlsx两种格式&#xff0c;他们的区别在于 文件格式不同&#xff1a;xls是一个特有的二进制格式&#xff0c;其核心结构是符合文档类型的机构&#xff0c…

5.1 内容管理模块 - 课程预览、提交审核

内容管理模块 - 课程预览、提交审核 文章目录 内容管理模块 - 课程预览、提交审核一、课程预览1.1 需求分析1.2 freemarker 模板引擎1.2.1 Maven 坐标1.2.2 freemaker 相关配置信息1.2.3 添加模板 1.3 测试静态页面1.3.1 部署Nginx1.3.2 解决端口问题被占用问题1.3.3 配置host文…

基于SSM的社区老年人关怀服务系统

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

关于steam游戏搬砖,想给大家的几点忠告

关于CSGO游戏搬砖&#xff0c;想给大家的几点忠告&#xff1a; 1、新出的箱子&#xff0c;里面开出的皮肤短时间内会溢价&#xff0c;价格虚高&#xff0c;后期会呈逐渐下跌趋势&#xff0c;这就是我们不让大家碰新品的原因&#xff0c;哪怕利润再高也不建议购入或者囤货&…

微笑抑郁症测试

微笑抑郁症属于抑郁症中的一类&#xff0c;微笑和抑郁本是两个对立词汇&#xff0c;但是可以并存且多发于职场精英中&#xff0c;由于工作关系他们必须保持这微信&#xff0c;让他人看到自己最美好的一面&#xff0c;过度压抑内心的情绪&#xff0c;如&#xff1a;工作压力&…

Java开发笔记

一、参数校验 1、校验json字符串是否符合规范 &#xff08;1&#xff09;业务场景&#xff1a;接收前端传输过来的json串&#xff0c;需要将其写入数据库&#xff0c;写入之前需要校验其是否能够转换成对应实体类&#xff0c;以便后续从数据库读取   &#xff08;2&#xff0…

用Pytorch实现线性回归模型

目录 回顾Pytorch实现步骤1. 准备数据2. 设计模型class LinearModel代码 3. 构造损失函数和优化器4. 训练过程5. 输出和测试完整代码 练习 回顾 前面已经学习过线性模型相关的内容&#xff0c;实现线性模型的过程并没有使用到Pytorch。 这节课主要是利用Pytorch实现线性模型。…

什么是TestNG以及如何创建testng.xml文件?

目录 什么是TestNG&#xff1f; 如何创建testng.xml文件 手动创建testng.xml 通过testng.xml运行整个包 通过testng.xml运行类 使用Eclipse创建testng.xml 本文将讨论TestNG以及如何通过执行testng.xml文件在TestNG中运行第一个测试用例。 什么是TestNG&#xff1f; Te…

2.1.2 一个关于y=ax+b的故事

跳转到根目录&#xff1a;知行合一&#xff1a;投资篇 已完成&#xff1a; 1、投资&技术   1.1.1 投资-编程基础-numpy   1.1.2 投资-编程基础-pandas   1.2 金融数据处理   1.3 金融数据可视化 2、投资方法论   2.1.1 预期年化收益率   2.1.2 一个关于yaxb的…

Unity游戏图形学 Shader结构

shader结构 shader语言 openGL&#xff1a;SLG跨平台 >GLSL&#xff1a;openGL shaderlauguge DX&#xff1a;微软开发&#xff0c;性能很好&#xff0c;但是不能跨平台 >HLSL&#xff1a;high level shader language CG&#xff1a;微软和Nvidia公司联合开发&#xff…