![](https://img-blog.csdnimg.cn/5a69035ddeb1427eb4d195b605002bf9.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
MySQL
文章平均质量分 72
MySQL实战学习
世界尽头与你
一个懂安全的开发者
展开
-
MySQL开启慢查询日志
先将超时时间(SQL执行超过多少时间会被记录到慢查询日志)修改为 3 秒。查看下默认的超时时间配置。查看下关于慢查询的配置。原创 2023-02-18 12:16:22 · 566 阅读 · 0 评论 -
MySQL使用索引的最佳指南
如果一个表的字段过多,索引过多,那么当这个表的数据达到一个体量后,索引占用的空间也是很多的,且修改索引时,耗费的时间也是较多的。冗余索引指的是索引的功能相同,能够命中索引(a, b)就肯定能命中索引(a) ,那么索引(a)就是冗余索引。如(name,city )和(name )这两个索引就是冗余索引,能够命中前者的查询肯定是能够命中后者的 在大多数情况下,都应该尽量扩展已有的索引而不是创建新索引。使用NOT关键字做反向范围查询时,并不会走索引,索引此时失效了,但是做正向范围查询时,索引依旧有效。原创 2023-01-19 15:56:48 · 2451 阅读 · 0 评论 -
详解MySQL数据库索引实现机制 - B树和B+树
于是各位大佬们就又产生了一个想法,是否我们可以这样解决B树的缺陷:在B树只有叶子节点存放 key 和 data,其他内节点只存放 key 的值,减少内节点每个节点的空间占用,这样每个节点就可以存放更多的记录数了!B树中每个节点都可以存放表的行记录数据,每个节点的读取可以视为一次I/O读取,树的高度表示最多的I/O次数,在相同数量的总记录个数下,每个节点的记录个数越多,高度越低,查询所需的I/O次数越少。这种算法的本质是用插入的成本来弥补查询的效率,适用于插入情况特别少,但是查询情况特别多的数据!原创 2023-01-18 18:01:21 · 2634 阅读 · 0 评论 -
MySQL三大日志(binlog、redo log和undo log)详解
redo log(重做日志)是InnoDB存储引擎独有的,它让MySQL拥有了崩溃恢复能力。比如MySQL实例挂了或宕机了,重启时,InnoDB存储引擎会使用redo log恢复数据,保证数据的持久性与完整性。MySQL中数据是以页为单位,你查询一条记录,会从硬盘把一页的数据加载出来,加载出来的数据叫数据页,会放入到中。后续的查询都是先从中找,没有命中再去硬盘加载,减少硬盘IO开销,提升性能。更新表数据的时候,也是如此,发现里存在要更新的数据,就直接在里更新。原创 2023-01-17 21:01:19 · 2141 阅读 · 0 评论 -
MySQL InnoDB的MVCC实现机制
什么是MVCC?MVCC,即多版本并发控制。MVCC是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问,在编程语言中实现事务内存MVCC在MySQL InnoDB中的实现主要是为了提高数据库并发性能,用更好的方式去处理读-写冲突,做到即使有读写冲突时,也能做到不加锁,非阻塞并发读什么是当前读和快照读?当前读像(共享锁),(排他锁)这些操作都是一种当前读,就是它读取的是记录的最新版本,读取时还要保证其他并发事务不能修改当前记录,会对读取的记录进行加锁快照读。原创 2023-01-16 16:49:37 · 800 阅读 · 2 评论 -
详解数据库的锁机制及原理
比如,有另外一个事务再想插入一条id值为4的新记录,它定位到该条新记录的下一条记录的id值为8,而这条记录上又有一个gap锁,所以就会阻塞插入操作,直到拥有这个gap锁的事务提交了之后,id列的值在区间。我们加了写锁,就可以保证不出现脏读,也就是保证读的都是提交之后的数据,但是会造成不可重读,即读的时候不加锁,一个读的事务过程中,如果读取数据两次,在两次之间有写事务修改了数据,将会导致两次读取的结果不一致,从而导致逻辑错误。独占锁不能和其他锁兼容,如果数据资源上已经加了独占锁,就不能再放置其他的锁了。原创 2023-01-16 13:07:13 · 4029 阅读 · 1 评论 -
MySQL数据库视图,备份
我们可以面向视图进行增删查改,对视图对象的操作会影响原表被操作!原创 2022-08-19 16:57:45 · 755 阅读 · 0 评论 -
MySQL索引入门
索引是帮助MySQL高效获取数据的一种数据结构 (排好序的快速查找的数据结构)本质上,索引是一种 数据结构索引的目的在于提高查找效率,类比字典MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。注:一般来说索引本身也很大,不可能全部存储在内存中,因此索引往往以索引文件的方式存储在磁盘上,索引也是需要排序的,并且这个排序的算法和。原创 2022-08-19 16:12:13 · 182 阅读 · 0 评论 -
MySQL事务
MySQL 事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你既需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务!在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行。事务用来管理语句。原创 2022-08-18 21:46:58 · 466 阅读 · 0 评论 -
MySQL约束,外键
约束的作用就是保证表中的数据有效非空约束not null(表中数据不能为NULL)唯一性约束unique(约束的字段不能重复,但是可以为NULL,也就是NULL可以重复)主键约束(主键不能为NULL,同时不可以重复)外键约束检查约束check(Mysql不支持)设定两个字段联合起来具有唯一性的方法:(设置name和email联合唯一性限制)注意:在Mysql中,如果一个字段同时被not null和unique约束,则该字段自动变为主键字段😙。原创 2022-08-18 18:27:12 · 312 阅读 · 0 评论 -
MySQL数据库关于表的一系列操作
只是将数据库中的数据删除,而在物理存储的数据并未删除,依然占用着一定的空间,所以可以进行回滚回复数据。此操作会删除表中的全部数据,并且无法回滚,优点是删除的效率较高,主要用于亿级大表删除操作。如果我们需要修改或更新 MySQL 中的数据,我们可以使用 SQL。命令来删除 MySQL 数据表中的记录。函数可以将日期转换成特定格式的字符串。SQL语句来插入数据。你可以使用 SQL 的。MySQL 表中使用。原创 2022-08-18 14:04:33 · 144 阅读 · 0 评论 -
MySQL数据库,子查询,union,limit篇
案例:查询工作岗位为MANAGER或者SALESMAN的员工信息(使用。后面的子查询,可以将子查询的查询结果当作一张临时表来看待。后面可以存在一个参数或者两个参数(起始下标,取数据条数)子查询,先查询子查询括号里的,再向上级进行查询。假设每页要访问y条数据,那么第x页的数据就是。语句的结果组合到一个结果集合中。案例:按照薪资降序取出排名前5的员工信息。案例:查询比最低工资高的员工姓名和薪资。案例:找出每个岗位的平均薪资的薪资等级。操作符用于连接两个以上的。语句会删除重复的数据。用于限制结果集的长度。原创 2022-07-24 16:30:21 · 156 阅读 · 0 评论 -
MySQL数据库,去重,连接篇
有些 MySQL 数据表中可能存在重复的记录,有些情况我们允许重复数据的存在,但有时候我们也需要删除这些重复的数据。要求显示员工名,部门名,领导名,薪资,薪资等级。我们可以发现,员工和领导的关系在一张表中,此时需要用到自连接(技巧:一张表看成两张表)要求显示员工名,部门名,薪资,薪资等级。还是上面的例子,取出每个员工的名字和部门名字:(sql99语法)案例:找出每个员工的薪资等级,要求显示员工名,薪资,薪资等级。案例:查询员工的上级领导,要求显示员工名和对应的领导名。案例:查找员工的部门信息。原创 2022-07-24 12:14:36 · 1178 阅读 · 0 评论 -
MySQL数据库,分组函数篇
那么现在出现了一个问题,如下语句看似违反了组合顺序,但是它为什么是正确的呢?表示整个范围的行数,因为数据库表中并不存在记录全为。语句根据一个或多个列对结果集进行分组。在分组的列上我们可以使用。实现此需求,这时只能使用。原创 2022-07-23 23:20:57 · 553 阅读 · 0 评论 -
MySQL数据库,排序与单行处理函数篇
处理完一行再处理下一行:(一个输入对应一个输出):(默认为升序排序,如果您进行指定的话,指定为。如果需要降序排序的话,需要指定。对123.456保留0位小数。原创 2022-07-23 21:42:01 · 197 阅读 · 0 评论 -
MySQL数据库,查询篇
示例5:查询岗位为MANAGER或者SALESMAN的员工:(使用关键字。当然,这种方式进行查询的效率较低,我们更推荐您使用多列查询的方式:😀。示例3:查询员工补助为空的(不为空为。那么,如果想查询单个列的信息呢?MySQL 数据库使用SQL。)原创 2022-07-23 20:30:44 · 331 阅读 · 0 评论 -
一文教你MySQL安装
在mysql的安装目录下,创建。管理员运行cmd,切换到。原创 2022-07-23 10:56:37 · 208 阅读 · 0 评论 -
MySQL无法启动的问题->MySQL 服务正在启动 . MySQL 服务无法启动。服务没有报告任何错误。 请键入 NET HELPMSG 3534 以获得更多的帮助
将MySQL安装目录里的data文件夹清空。运行如下命令启动mysql即可。重新生成一个data文件夹。原创 2022-03-05 18:00:17 · 3419 阅读 · 0 评论 -
【MySQL】服务没有响应控制功能。 请键入 NET HELPMSG 2186 以获得更多的帮助。
将文件放置在MySQL bin文件夹下。重新启动MySQL,发现启动成功了!出现场景,MySQL 启动服务报错。原创 2022-03-05 18:01:54 · 7330 阅读 · 13 评论 -
MySQL数据库用户管理
如果你需要添加 MySQL 用户,你只需要在 mysql 数据库中的 user 表添加新用户即可。例如我们要登录本机的 MySQL 数据库root用户,只需要输入以下命令即可:😁。以root用户(或者其他拥有新建用户权限的用户)登录数据库,运行以下命令。加一个闪烁的光标等待命令的输入, 输入。以修改root用户密码为例,在。键入后输入原密码后即可修改。输入密码后即可登录成功!然后命令提示符会一直以。登录成功后你将会看到。原创 2022-03-04 20:06:01 · 500 阅读 · 0 评论