![](https://img-blog.csdnimg.cn/2019092715111047.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Mysql
文章平均质量分 62
Mysql 相关
龙大.
初心未改,方得始终!
展开
-
Mysql 中的Undo日志
Undo Log 是 MySQL InnoDB 存储引擎中实现事务回滚的重要组成部分,它记录了可以回滚的操作数据。通过 Undo Log,数据库可以保证数据的一致性和完整性,尤其在事务操作失败或需要手动回滚时,它提供了恢复到之前状态的能力。虽然具体内容以二进制形式存储,但其基本结构包括事务 ID、LSN、操作类型和原始数据,极大地支持了数据库事务的特性。原创 2024-08-17 16:03:32 · 513 阅读 · 0 评论 -
Mysql的Redo
Redo Log 是 MySQL 中 InnoDB 存储引擎的重要组成部分,负责记录所有事务以支持崩溃恢复。由于它是二进制格式且结构复杂,通常不直接以可读文本方式展示;但是,可以通过工具进行解析和查看。其设计确保了数据的持久性和一致性,尤其在发生系统崩溃或错误时。原创 2024-08-17 16:00:19 · 376 阅读 · 0 评论 -
Mysql的Binlog的数据样例
Binlog(Binary Log)是 MySQL 中的二进制日志,记录了所有更改数据库的操作,包括数据的插入、更新和删除,它是主从复制、数据恢复和审计的重要来源。原创 2024-08-17 15:44:02 · 451 阅读 · 0 评论 -
MySQL EXPLAIN 中的 type 和 ref 字段
在 MySQL 中,EXPLAIN语句用于分析 SQL 查询的执行计划。EXPLAIN输出的结果中包含多个字段,其中type和ref字段是理解查询执行方式的重要部分。原创 2024-07-08 13:03:29 · 667 阅读 · 0 评论 -
MySQL RENAME TABLE 命令的底层实现原理
命令格式功能:将现有表重命名为新的表名。原创 2024-06-26 13:02:47 · 546 阅读 · 0 评论 -
MySQL中的TRUNCATE命令是否直接删除文件
命令在MySQL中用于高效地删除表中的所有数据,但保留表结构和定义。它通过快速重置表空间和元数据来实现数据清空,而不是直接删除数据文件。命令时,需谨慎操作,并确保有必要的备份,以防数据丢失。命令更高效,但也意味着其操作是不可逆的。原创 2024-06-26 12:54:04 · 435 阅读 · 0 评论 -
Hive 与 MySQL 的数据库限制对比
请注意,上述信息提供了一般的指导,实际的限制可能会因版本、配置、硬件资源以及其他因素而有所不同。在部署和优化数据库时,应考虑到特定环境中的实际限制。原创 2024-05-01 10:51:21 · 789 阅读 · 3 评论 -
MySQL 和 Hive 存储引擎对表数量、索引有那些限制?
MySQL支持多种存储引擎,如InnoDB和MyISAM,每种引擎都有自己的特性和限制。原创 2024-04-30 12:48:21 · 740 阅读 · 0 评论 -
Binlog、Redo 和 Undo 的概念与区别
Binlog,即二进制日志,是MySQL数据库中的一个二进制文件,主要用于记录数据库中所有的DDL(Data Definition Language)和DML(Data Manipulation Language)语句,用于实现数据的复制和恢复。原创 2024-04-22 12:58:09 · 266 阅读 · 0 评论 -
关系数据库设计的基本步骤及其产物
数据库设计分为需求分析、概念结构设计、逻辑结构设计、物理结构设计、应用程序设计和运行维护6个阶段。原创 2024-04-17 12:46:44 · 549 阅读 · 0 评论 -
数据类型分类:什么是结构化数据、半结构化数据、非结构化数据
结构化数据指的是按照一定格式排列,便于机器读取和搜索的数据。这类数据通常存储在关系型数据库中,如SQL数据库,它们有明确的数据模型和结构,例如表格,其中定义了行和列。每一列都有确定的数据类型,每一行都是一个数据记录。原创 2024-04-17 12:41:40 · 2533 阅读 · 0 评论 -
CREATE TABLE ... AS SELECT 与 CREATE TABLE ... LIKE 的相同点和不同点
目录相同点不同点 数据复制:索引和表选项:默认值和约束:自定义能力:使用场景:性能: 综上所述,和虽然都用于创建新表,但根据是否需要复制数据、保留索引和表选项以及自定义表结构的需求,会选择不同的语句来满足特定的场景。原创 2024-04-10 07:47:25 · 948 阅读 · 0 评论 -
MySQL 建表语句详解
列是主键并自动递增,起始值为 1001。在这个示例中,创建了一个名为。,并且有一个表级注释。原创 2024-04-09 23:17:56 · 4643 阅读 · 0 评论 -
在MySQL中字符串和整数比较的行为
在MySQL中,当进行字符串和整数的比较时,MySQL会尝试将字符串转换为数值来进行比较。这种转换遵循特定的规则:如果字符串的开头部分包含数字,那么MySQL会将这个数字部分提取出来,并将其用作比较的数值。如果字符串以非数字字符开头,则在比较时该字符串会被转换为数值0。原创 2024-03-26 13:00:38 · 667 阅读 · 0 评论 -
数据库设计三范式
遵循这三个范式,数据库设计者可以创建既能够反映现实世界数据特征,又能够保持良好性能的数据库结构。尽管有时候为了性能考虑,设计者可能会有意识地违反范式原则,这种情况通常称为反范式化(denormalization)。反范式化通常在需要优化查询性能的特定场景下进行,但可能会牺牲数据冗余和更新操作的效率。原创 2024-03-14 12:46:02 · 296 阅读 · 0 评论 -
SQL 的优化手段
通过上述手段,可以有效地优化SQL语句和数据库性能,提升数据检索的效率和速度。在实际应用中,通常需要结合具体的业务场景和数据特点,进行综合考虑和调整。IN 与 <= 且 >=的合理选择。原创 2024-03-08 21:35:07 · 827 阅读 · 0 评论 -
SQL中EXISTS 代替 IN的一些情况
假设我们有两个表:orders(订单表)和 customers(客户表),我们想要查找至少有一个订单的所有客户。这里,一旦找到至少一个存在的订单,对应的。与任何值的比较都不会返回真。子句就会返回真,而且不关心。总结来说,当查询涉及到可能有。会在比较中被忽略,因为。原创 2024-03-08 21:34:18 · 786 阅读 · 0 评论 -
SQL 中避免使用 != 或 <>
在设计 SQL 查询时,应当考虑是否有更有效的方式来达到同样的目的,比如使用 IN、EXISTS、JOIN 或其他条件表达式,这些方式可能会使查询更加高效。在实际应用中,也应该对查询进行测试和分析,以确保它们的性能符合要求。原创 2024-03-08 12:59:51 · 614 阅读 · 2 评论 -
SQL 中 IN 与 <= 且 >= 的效率比较
总结来说,如果查询的是离散的、非连续的值集合,且这些值可以利用索引,则 IN 可能比 = 更高效。然而,具体情况取决于数据分布、索引设计、查询优化器的行为等多种因素。在设计查询时,应该根据具体情况进行测试和分析,以确定最佳的查询方式。原创 2024-03-08 12:46:23 · 1137 阅读 · 0 评论 -
SQL 中IN 列表的最佳使用情况
总结来说,IN 列表的最佳使用情况是列表项数量较少、值具有高选择性、无重复值,并且所涉及的列有索引。在处理大量数据时,应考虑使用其他查询方法。对于特定的数据库系统,还应遵守其关于 IN 列表大小的指南和限制。原创 2024-03-08 12:41:38 · 668 阅读 · 0 评论 -
MySQL中的聚集索引和非聚集索引
聚集索引是一种特殊类型的索引,其中表中的数据行实际上是按照索引键的顺序存储的。在MySQL的InnoDB存储引擎中,聚集索引通常与表的主键关联。每个表只能有一个聚集索引,因为数据不能按照两个以上的顺序存储。聚集索引决定了表中数据的物理顺序。主键查询非常快,因为索引结构直接指向带有数据的页。当按照索引顺序进行范围查询时,聚集索引非常有效。非聚集索引是数据库中的一种索引,它的结构独立于数据行的物理存储顺序。非聚集索引包含索引键值和指向数据行的指针(主键地址)。一个表可以有多个非聚集索引。原创 2024-02-17 22:13:05 · 663 阅读 · 0 评论 -
MySQL的索引类型
列是一个地理数据类型,创建了一个空间索引,用于地理位置查询。列被定义为主键,MySQL会自动为这个列创建一个主键索引。列创建了一个前缀索引,只索引了内容的前100个字符。两个列,可以加速同时涉及这两个字段的查询。列创建了一个普通索引,用来加速基于。这个例子创建了一个组合索引,包含。原创 2024-02-17 22:04:08 · 1196 阅读 · 0 评论 -
MySQL JSON数据类型使用和说明
尽管JSON数据类型提供了存储和查询灵活性,但它不应该被用作替代传统关系型数据库模式的主要手段。建议在以下情况下使用JSON数据类型:原创 2024-02-03 15:52:37 · 974 阅读 · 1 评论 -
MySQL 中 LIMIT n 与 LIMIT n, m 的区别以及如何避免深分页性能问题
LIMIT n通常更适用于简单的数据检索,而且性能较好。LIMIT n, m适用于分页场景,但对于大的偏移量 n,性能可能会下降。使用上述解决方案可以帮助优化分页查询的性能。原创 2024-01-24 12:58:19 · 648 阅读 · 0 评论 -
Mysql 的HAVING子句中COUNT(a)的统计范围
Group by a,b,多个字段HAVING count(a)>1是针对每个唯一的a和b组合进行计数。原创 2024-01-19 12:57:16 · 1721 阅读 · 0 评论 -
MySQL 四种插入命令及其特点与锁机制
不同的插入命令在处理唯一键冲突时具有不同的行为。在锁的层面,INSERT INTO和INSERT IGNORE INTO通常涉及行锁,而INSERT INTO ... ON DUPLICATE KEY UPDATE和REPLACE INTO可能会涉及间隙锁,特别是在并发环境下。间隙锁是为了保持事务隔离性而设置的,它锁定了一个范围,防止其他事务插入到这个范围内。每种方式在并发场景下都有可能产生死锁,尤其是在多个事务试图以不同顺序访问同一组数据时。因此,设计数据库操作时需要考虑锁的影响,合理安排事务顺序,以减原创 2024-01-01 23:06:32 · 987 阅读 · 0 评论 -
高性能Mysql相关概念总结
目录一、背景介绍 今天翻阅自己的老电脑,无意中发现了之前学习Mysql笔记,看了一下,还是挺不错的,所以分享出来一起学习,内容以思维导图的方式展示,原创 2020-11-21 11:44:00 · 92 阅读 · 0 评论 -
乐观锁与悲观锁区别
悲观锁(Pessimistic Lock) 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。乐观锁(Optimistic Lock) 顾名思义,就是原创 2016-04-07 12:58:28 · 350 阅读 · 0 评论