
数据库
文章平均质量分 70
Chaney不会代码
生活原本郁闷,但跑起来就会有风。
展开
-
MySQL进阶注意事项-锁
MySQL 中的锁机制非常重要,因为它直接影响到并发控制和数据的一致性。MySQL 支持多种锁类型,不同的锁类型在不同的操作和隔离级别下有不同的行为。原创 2025-02-16 14:07:58 · 931 阅读 · 0 评论 -
事务的隔离级别与MVCC
隔离级别的事务来说,都必须保证读到已经提交了的事务修改过的记录,也就是说假如另一个事务已经修改了记录但是尚未提交,是不能直接读取最新版本的记录的,核心问题就是:需要判断一下版本链中的哪个版本是当前事务可见的。如果一个事务先根据某些条件查询出一些记录,之后另一个事务又向表中插入了符合这些条件的记录,原先的事务再次按照该条件查询时,能把另一个事务插入的记录也读出来,那就意味着发生了。的特性,理论上在某个事务对某个数据进行访问时,其他事务应该进行排队,当该事务提交之后,其他事务才可以继续访问这个数据。原创 2025-02-16 09:23:11 · 856 阅读 · 0 评论 -
万物皆索引
这一讲,我们对上一节索引的部分做了更为深入的介绍,你应该了解到MySQL InnoDB 存储引擎是索引组织表,以及索引组织表和堆表之间的区别。索引组织表主键是聚集索引,索引的叶子节点存放表中一整行完整记录;除主键索引外的索引都是二级索引,索引的叶子节点存放的是(索引键值,主键值);由于二级索引不存放完整记录,因此需要通过主键值再进行一次回表才能定位到完整数据;索引组织表对比堆表,在海量并发的OLTP业务中能有更好的性能表现;每种不同数据,对二级索引的性能开销影响是不一样的;原创 2025-02-15 10:46:12 · 720 阅读 · 0 评论 -
mysql B+树中为什么同层的非叶子节点所在的页也使用双向链表连接?
实际采取的做法是,只遍历了10个叶子节点,根据这10个节点算出每个节点平均包含多少条数据,然后用这个数据乘以m,就是n的值了。同理可以知道q的值。同样的办法,只要10个页,算出平均值,然后找到倒数第三层遍历,用倒数第三层的条数,乘以这个平均值,就得到了k和t。: 在B+树的操作中,非叶子节点通过双向链表连接的设计能让多个查询操作更加独立,减少了节点之间的锁竞争,提升了数据库的并发性能。总结来说,非叶子节点用双向链表连接,是为了优化范围查询和顺序扫描的效率,减少重复查找路径,提升数据库的整体查询性能。原创 2025-02-15 10:45:13 · 658 阅读 · 0 评论 -
MySQL字段的字符类型该如何选择?千万数据下varchar和char性能竟然相差30%[特殊字符]
需要存储文本字符时,可以选择TEXT相关的类型,读取时需要从磁盘中获取,但可以存储的空间多适合存储大文本需要存储二进制流可以选择BLOB相关的类型char是固定的字符串,varchar是可变长的字符串,它们占用的空间与选择使用的字符集和分配的长度有关varchar长度255及以下会使用一个字节记录可变长长度,以上会使用两个字节记录可变长长度char中未存满的值会用空格填充,因此字符串末尾无法存储空格,而varchar不会填充末尾可以存储空格。原创 2025-02-14 15:55:41 · 1177 阅读 · 0 评论 -
MySQL的数据类型
MySQL 支持多种数据类型,包括数值型、字符串型、日期时间型、二进制型等。数据类型的选择应该根据存储的数据类型和范围来确定。例如,对于存储性别的字段,可以使用 ENUM 类型,因为该字段的取值范围较小,只有男、女两个取值。对于存储长文本的字段,应该使用 LONGTEXT 类型,而不是 TEXT 类型,以支持更大的文本内容。原创 2025-02-13 21:25:44 · 413 阅读 · 0 评论 -
MySQL的DDL
这些 DDL 语句可以通过 MySQL 命令行客户端或图形化客户端(如 MySQL Workbench)等工具执行。在执行 DDL 语句时,需要注意语法的正确性,避免错误操作导致数据库结构的损坏。同时,DDL 操作具有较高的权限,应该谨慎使用。MySQL 的 DDL(Data Definition Language)是用于定义数据库、表、列、索引等数据库对象的语言。原创 2025-02-13 21:25:07 · 418 阅读 · 0 评论 -
SQL语句的分类
SQL(Structured Query Language,结构化查询语言)是一种用于关系数据库管理系统的标准化查询语言,主要用于数据库中数据的增删改查、表的创建与删除、表之间的关联和约束等方面。原创 2025-02-13 21:23:21 · 337 阅读 · 0 评论 -
MySQL可视化客户端
MySQL 可视化客户端是一个图形化界面的工具,可以帮助用户更方便地管理和操作 MySQL 数据库。这些 MySQL 可视化客户端都有其优缺点,用户可以根据自己的需求和使用习惯选择适合自己的工具。原创 2025-02-13 21:22:49 · 1094 阅读 · 0 评论 -
MySQL基本查询
MySQL 中使用SELECT语句来查询数据。SELECT语句用于从表中检索数据,可以指定要检索的列、过滤条件、排序方式等。原创 2025-02-13 21:22:19 · 236 阅读 · 0 评论 -
MySQL OR 运算符的用法
本文介绍了 MySQL 中如何在 WHERE 子句中使用 OR 运算符组合多个查询条件过滤查询数据。当使用SELECT查询数据时,如果WHERE子句中有多个条件,可以根据需要使用ANDOR, 或者NOT运算符将他们组合起来。本文主要介绍OR运算符。原创 2025-02-09 19:34:17 · 941 阅读 · 0 评论 -
MySQL AND 运算符的用法
本文介绍了 MySQL 中如何在 WHERE 子句中使用 AND 运算符组合多个查询条件过滤查询数据。当使用SELECT查询数据时,如果WHERE子句中有多个条件,可以根据需要使用ANDOR, 或者NOT运算符将他们组合起来。本文主要介绍AND运算符。原创 2025-02-09 19:33:39 · 759 阅读 · 0 评论 -
MySQL 使用 WHERE 子句过滤数据
WHERE子句允许您为SELECT查询指定搜索条件。以下是WHERESELECTFROMtable_nameWHERE其中就是查询条件,它的结果是一个布尔值,其值可能为TRUEFALSE或UNKNOWN。最终,SELECT语句返回的结果集就是满足查询条件结果为TRUE的记录。查询条件也可以是使用ANDOR和NOT逻辑运算符一个或多个表达式的组合。除了用在SELECT语句之外,WHERE子句还可以用在UPDATE和DELETE语句中,用来指定要更新或删除的行。原创 2025-02-09 19:32:31 · 690 阅读 · 0 评论 -
MySQL SELECT 语句
本文介绍了 MySQL 中的SELECT语句的基本形式,以及如何使用SELECT语句从数据库中查询数据。SELECT语句用于从一个或多个表中检索数据,是 MySQL 中使用最多的语句。原创 2025-02-09 19:31:44 · 651 阅读 · 0 评论 -
执行一条 select 语句,期间发生了什么
这里说的查询缓存是 server 层的,也就是 MySQL 8.0 版本移除的是 server 层的查询缓存,并不是 Innodb 存储引擎中的 buffer pool。命令,这样就会输出这条 SQL 语句的执行计划,然后执行计划中的 key 就表示执行过程中使用了哪个索引,比如下图的 key 为。我下面这条查询语句,test 这张表是不存在的,这时 MySQL 就会在执行 SQL 查询语句的 prepare 阶段中报错。,比如在表里面有多个索引的时候,优化器会基于查询成本的考虑,来决定选择使用哪个索引。原创 2025-02-09 19:30:33 · 291 阅读 · 0 评论 -
MySQL聚合函数
在 MySQL 中,聚合函数用于在查询中对一组数据进行计算并返回单个结果。子句一起使用的,以对每个分组计算结果。需要注意的是,聚合函数通常是与。原创 2025-02-08 11:11:55 · 138 阅读 · 0 评论 -
MySQL查询like
在 MySQL 中,LIKE 运算符用于模糊查询满足指定模式的数据,通常用于字符串类型的字段。LIKE 运算符可以与通配符一起使用,通配符用于指定要匹配的模式。以上示例将返回所有名字以 "Tom" 开头的员工的信息。以上示例将返回所有名字以 "son" 结尾的员工的信息。以上示例将返回所有名字中包含 "Tom" 的员工的信息。以上示例将返回所有名字长度为 3 的员工的信息。需要注意的是,使用 LIKE 运算符进行模糊查询可能会影响查询性能,特别是在处理大量数据时。原创 2025-02-08 11:09:37 · 497 阅读 · 0 评论 -
MySQL条件查询where子句
在使用 WHERE 子句时,需要注意语句的性能和效率,避免对数据库造成不必要的负担。以上示例将返回所有年龄大于 30 岁且薪水高于 5000 的员工的信息,或者返回所有年龄大于 30 岁或薪水高于 5000 的员工的信息。以上示例将返回所有薪水在 5000 到 8000 之间的员工的信息。以上示例将返回所有年龄为 25、30 或 35 的员工的信息。以上示例将返回所有名字以 "Tom" 开头的员工的信息。以上示例将返回所有薪水高于 5000 的员工的信息。IN 运算符用于从表中检索符合指定值列表的数据。原创 2025-02-08 11:07:00 · 210 阅读 · 0 评论 -
MySQL DQL
DQL 还有许多其他功能,例如使用 GROUP BY 和 HAVING 子句进行分组、使用 JOIN 子句连接多个表等等。在使用 DQL 语句时,需要注意语句的性能和效率,避免对数据库造成不必要的负担。ORDER BY 子句用于按指定列对结果进行排序,可以按升序或降序排序。WHERE 子句用于过滤检索结果。可以根据多个条件过滤数据。可以使用 SELECT 语句选择表中的指定列。SELECT * 语句用于检索表中的所有列。LIMIT 子句用于限制检索结果的数量。原创 2025-02-08 11:04:43 · 165 阅读 · 0 评论 -
MySQL DML
DML 是 MySQL 中的一种语言,用于操作表中的数据,包括 SELECT、INSERT、UPDATE 和 DELETE 四种操作。在使用 DML 语句时,需要小心使用 WHERE 子句和其他限制条件,以免意外删除或修改数据。另外,需要注意语句的性能和执行效率,避免对数据库造成不必要的负担。需要指定表名和要插入的数据。UPDATE 语句用于更新表中的数据。需要指定表名、要更新的字段和新的值,以及 WHERE 子句指定更新的条件。需要指定表名和 WHERE 子句指定要删除的数据。原创 2025-02-08 11:03:42 · 129 阅读 · 0 评论 -
MySQL简介
MySQL是一种开源的关系型数据库管理系统(RDBMS),由瑞典MySQL AB公司开发,目前由Oracle公司进行开发和维护。MySQL使用标准的SQL数据语言进行数据的管理和操作,支持多种操作系统平台,包括Linux、Windows和Mac OS等。开源、免费:MySQL是一个完全开源的软件,可以免费下载和使用。稳定、可靠:MySQL是一种经过广泛测试和验证的数据库管理系统,具有良好的稳定性和可靠性。高性能:MySQL使用多种技术和优化策略,可以提供高效的数据存储和检索功能。原创 2025-02-07 10:24:33 · 894 阅读 · 0 评论 -
数据库的基本概念
数据库是一种用于存储、组织和管理数据的电子系统,可以让用户方便地存储和检索数据。数据库通常由一个或多个数据表组成,每个表都有一些列,每列代表了一个特定的数据类型。在表中,每一行都代表了一条记录,其中每个列都包含了相应的数据值。数据库可用于各种类型的应用程序,包括商业、科学、医疗、社交媒体等等。它们提供了一种安全、可靠的数据存储方式,可以让多个用户同时访问和处理同一个数据集。用户可以在数据库中进行各种操作,例如添加、修改、删除和查询数据。原创 2025-02-07 10:20:01 · 724 阅读 · 0 评论 -
数据库简介
数据库管理系统(DBMS)是一种用于管理数据库的软件系统,它提供了创建、读取、更新和删除(CRUD)数据库中数据的方法。DBMS的主要任务是对数据进行有效和安全的管理。DBMS允许用户定义和创建数据库,定义表和它们的关系,定义表中数据的约束和规则,以及查询和更新数据等。它还提供了一种访问控制机制,以确保只有授权用户才能访问数据库。DBMS还提供了各种性能优化机制,如索引、缓存、查询优化等,以提高数据库的性能。原创 2025-02-07 10:06:22 · 534 阅读 · 0 评论