MySQL数据库进阶笔记

第一章 存储引擎

1.1 MySQL体系结构

连接层

最上层是一些客户端和链接服务,主要完成一些类似连接处理、授权认证、及相关的安全方案。服务器也为安全接入的每个客户端验证它所具有的操作权限。

服务层

第二层架构主要完成大多数的核心服务功能,如SQL接口,并完成缓存的查询,SQL的分析和优化,部分内置函数的执行。所有跨存储引擎的功能也在这一层实现,如过程、函数等。

引擎层

存储引擎真正负责了MySQL数据的存储和提取,服务器通过API和存储引擎进行通信。不同的存储引擎具有不同的功能,这样我们可以根据自己需要,来选择合适的存储引擎。

存储层

主要将数据存储在文件系统上,并完成与存储引擎的交互。

1.2 存储引擎概述

存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式。存储引擎是基于表的,而不是基于库的,所以存储引擎也可被称为表类型。

#在创建表时,指定存储引擎
CREATE TABLE 表名(
字段1 字段1类型[COMENT 字段1注释]
......
字段n 字段n类型[COMENT 字段n注释]
)ENGINE = INNODB[COMMENT 表注释];
#查看当前数据库支持的存储引擎
SHOW ENGINES;

1.3 常用存储引擎

InnoDB

定义:InnoDB是一种兼顾高可靠性和高性能的通用存储引擎,在MySQL5.5后,InnoDB是默认的MySQL存储引擎。

特点:

DML操作遵循ACID模型,支持事务;

行级锁,提高并发访问性能;

支持外键FOREIGN KEY约束,保证数据的完整性和正确性;

MyISAM

定义:MyISAM是早期的默认存储引擎。

特点:

不支持事务,不支持外键;

支持表锁,不支持行锁;

访问速度快;

Memory

定义:Memory引擎的表数据时存储在内存中,由于受到硬件问题、或断电问题的影响,只能将这些表作为临时表或缓存使用。

特点:

内存存放

hash索引(默认)

存储引擎选择

在选择存储引擎时,应该根据应用系统的特点选择合适的存储引擎。对于复杂的应用系统,还可以根据实际情况选择多种存储引擎。

InnoDB:是MySQL的默认存储引擎,支持事务、外键。如果应用对事务的完整性有比较高的要求,在并发条件下要求数据的一致性,数据操作除了插入和查询外,还包含许多更新、删除操作,那么InnoDB存储引擎是比较合适的选择。

MyISAM:如果应用以读操作和插入操作为主,只有很少的更新和删除操作,并且对事务的完整性、并发性要求不是很高,那么选择MyISAM引擎是合适的。

Memory:将所有数据保存在内存中,访问速度快,通常用于临时缓存。Memory的缺陷是对表的大小有限制,太大的表无法缓存在内存中,而且无法保障数据的安全性。

第二章 索引

2.1 索引概述

索引定义

索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。

索引优缺点

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

靠这套车载测试面试题系列成功哪些20k!

HFP测试内容与测试方法 2.3 接听来电:测试手机来电时,能否从车载蓝牙设备和手机侧正常接听】拒接、通话是否正常。 1、预置条件:待测手机与车载车载设备处于连接状态 2、测试步骤: 1)用辅助测试机拨打待测手机&…

电商还存在错位竞争空间吗?

“上链接试了,十几分钟,成本5块的东西卖1块5了。”今年618前期,某个电商平台上线了自动跟价功能,有一个卖家尝试了一会儿之后赶紧关了。 又一个618,平台、商家、消费者们又迎来了一次狂欢。只是与往年不同的是&#x…

2024年,收付通申请开通流程

大家好,今天咱们来聊聊关于APP场景中开通微信收付通的一些实用小窍门。在如今的移动互联网时代,很多商家都选择通过APP来提供服务和产品,因此如何在APP中顺利集成微信收付通功能,让用户能够轻松完成支付,就显得尤为重要…

高考志愿选专业,文科生如何分析选择专业?

每到高考时节,学生们最关注的就是专业选择,以及未来职业发展问题,对于文科生来说,面对文科专业的众多选择,很多人都有些不知所措,如何选择适合自己兴趣爱好,又有良好就业前景的工作。从哪些方面…

每天写java到期末考试(6.20)--集合2--练习--6.20

练习1 package QM_Fx;import java.util.ArrayList;public class test{public static void main(String[] args) {//1.创建一个集合ArrayList<String> listnew ArrayList<>();//2.添加元素list.add("点赞了吗");list.add("投币了吗");list.add(…

项目六 OpenStack虚拟机实例管理

任务一 理解OpenStack计算服务 1.1 •什么是Nova • Nova是OpenStack中的计算服务项目 &#xff0c;计算虚拟机实例生命周期的所有活动都由 Nova 管理 。 • Nova 提供统一的计算资源 服务。 • Nova 需要下列 OpenStack 服务的 支持。 Keystone &#xff1a;为所有的 OpenSt…

企智汇:弱电智能化项目工程项目管理系统助力企业项目管理!

在当今数字化时代&#xff0c;弱电智能化项目的复杂性和挑战性日益增加&#xff0c;高效的项目管理变得尤为重要。企智汇弱电智能化项目工程项目管理系统凭借其业务流程化、流程数据化、数据可视化、业财一体化及成本精细化等特性&#xff0c;为项目全生命周期管理提供了全面而…

Mathtype插入word,以及mathtype在word上的卸载

1.Mathtype插入word 花了两个小时&#xff0c;最终得出的极品简单的安装方法&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; mathype下载地址&#xff1a;https://store.wiris.com/zh/products/mathtype/download/windows 下载完傻瓜式安装&#xff0c;不要…

车载测试系列:车载测试流程

车载测试流程是保证软件质量的重要支撑&#xff0c;优秀的团队都必须拥有规范的流程体系支撑&#xff0c;它能够约束测试人员的测试行为&#xff0c;约束测试环境的测试精度&#xff0c;提升测试的覆盖度&#xff0c;保证团队成员工作的协调性。 该测试流程建立的依据&#xf…

变长的时间戳设计

以前的时间戳有32位&#xff0c;以秒为单位&#xff0c;231秒≈68年&#xff0c;从1970年开始&#xff0c;到2038年会出问题。 后来出现的时间戳有64位&#xff0c;以纳秒为单位&#xff0c;263纳秒≈292年。 本次设计的变长时间戳&#xff0c;以32比特为单位&#xff0c;总共…

处理文本内容的命令和正则表达式

处理文本内容的命令 正则表达式匹配的是文本内容&#xff0c;linux的文本三剑客 都是针对文本内容 文本三剑客&#xff1a; grep 过滤文本内容 sed 针对文本内容进行增删改查 awk 按行取列 文本三剑客都是按行进行匹配。 grep grep的作用就是使用正则表达式来匹配文本内…

码蹄集 BD202401 补给

错误解法&#xff1a;简单将取半前后的综合排序后取最小值&#xff0c;这样没有考虑这样一种情况&#xff1a;取半的时机不对&#xff0c;也许取半某个大一点的P之后反而能进一步取一个补给点了呢&#xff1f;&#xff1f;对不对。这样简单排序只不过是“最省钱”的一种&#x…

C# 数据结构与算法:近邻算法的详解

文章目录 1、什么是K最近邻算法&#xff08;KNN&#xff09;&#xff1f;2、 KNN算法的原理3、实现近邻算法算法使用示例 4、应用&#xff1a;使用KNN算法进行简单的分类5、算法的优势与不足6、总结 近邻算法是一种基于实例的学习方法&#xff0c;它通过找到与给定测试点最接近…

镭速传输界面优化之静态文件加载

镭速一直是众多企业传输大文件和大数据的优选对象&#xff0c;速度快、稳定且安全是市场上传输软件脱颖而出的立杆标签&#xff0c;那么同样在界面优化和体验的强大也能够给企业用户带来许多直观的感受&#xff0c;那么今天我们就来谈谈镭速是如何做到这些的&#xff0c;在界面…

卷积篇 | YOLOv8改进之引入重新参数化再聚焦卷积RefConv | 即插即用

前言:Hello大家好,我是小哥谈。论文提出了重新参数化再聚焦卷积RefConv作为常规卷积层的替代品,它是一个即插即用模块,可以在没有任何推理成本的情况下提高性能。具体来说,在给定预训练模型的情况下,RefConv对从预训练模型继承的基核进行可训练的再聚焦变换,以建立参数之…

qt笔记之main.cpp加载qml文件的3种方法QQuickView 、QQmlApplicationEngine、QQuickWidget

qt笔记之main.cpp加载qml文件的3种方法QQuickView 、QQmlApplicationEngine、QQuickWidget —— 2024-06-16 下午 code review! 文章目录 qt笔记之main.cpp加载qml文件的3种方法QQuickView 、QQmlApplicationEngine、QQuickWidget1.使用qtcreator创建qml空项目&#xff0c;默…

【python】Sklearn—Cluster

参考学习来自 10种聚类算法的完整python操作示例 文章目录 聚类数据集亲和力传播——AffinityPropagation聚合聚类——AgglomerationClusteringBIRCH——Birch&#xff08;✔&#xff09;DBSCAN——DBSCANK均值——KMeansMini-Batch K-均值——MiniBatchKMeans均值漂移聚类——…

来都来了,8个JavaScript技巧奉上

吆喝一声&#xff0c;如果你计算机、软件工程、电子等相关专业本科及以上学历&#xff0c;欢迎来共事。前后端/测试可投&#xff0c;技术大厂。 JavaScript 作为最流行的语言之一&#xff0c;其语法灵活且每年都在不断吸纳新特性&#xff0c;即使是一个从业多年的老手&#xff…

Hydra常用爆破命令

常用破解命令 SSH 破解 hydra -l 用户名 -p 密码字典 -t 线程 -vV -e ns ip ssh hydra -l 用户名 -p 密码字典 -t 线程 -o save.log -vV ip sshFTP 破解 hydra ftp://ip -l 用户名 -P 密码字典 -t 线程(默认16) -vV hydra ftp://ip -l 用户名 -P 密码字典 -e ns -vVWeb 登陆…

《深入理解Spark RDD缓存机制》(第4天)

文章目录 前言一、小试牛刀&#xff1a;解剖RDD缓存机制&#xff1f;1. 什么是Spark RDD缓存策略1.1 为什幺RDD要做缓存1.2 缓存相关API&#xff1a;1.3 缓存案例解析:1.4 图解缓存效果: 2. 什么是checkpoint缓存2.1 为什么要做checkpoint缓存2.2 checkpoint相关API:2.3 checkp…