标签: 数据库
编程

在 Go 中如何使用 database/sql 来操作数据库

1128 2023-07-18 17:31:00

在现代软件开发中,数据库扮演着至关重要的角色,用于存储和管理应用程序的数据。针对不同的数据库系统,开发人员通常需要使用特定的数据库驱动来操作数据库,这往往需要开发人员掌握不同的驱动编程接口。在 Go 语言中,好在有一个名为 database/sql 的标准库,提供了统一的编程接口,使开发人员能够以一种通用的方式与各种关系型数据库进行交互。概念database...

详情...
编程

故障分析 | 从慢日志问题看 MySQL 半一致性读的应用场景

1203 2023-07-16 15:48:00

背景某系统执行更新操作发现很慢,发现有大量慢日志,其中 Lock time 时间占比很高,MySQL 版本为 5.7.25,隔离级别为 RR。

详情...
编程

数据库外键约束的作用

1351 2023-06-05 18:06:00

外键是该表是另一个表之间联接的字段外键必须为另一个表中的主键;外键的用途是确保数据的完整性。它通常包括以下几种:实体完整性,确保每个实体是唯一的(通过主键来实施)域完整性,确保属性值只从一套特定可选的集合里选择关联完整性,确保每个外键或是NULL(如果允许的话)或含有与相关主键值相配的值FOREIGN...

详情...
编程

数据库 Auto Increment 的实际问题

1231 2023-05-25 17:21:00

本文中,我将展示我以后将在 Postgres 和 MySQL 中避免使用 auto-increment 自增长字段的两个原因。我更愿意使用 UUID 字段除非有非常好的不使用的理由。 MySQL 8.0 auto-increment ID 重用 如果运行的是旧版本的MySQL,那么自动递增的ID可能会被重复使用。让我们看看这个动作..

详情...
编程

SQL 性能优化:慢索引-2

1234 2023-05-11 11:39:00

前面章节介绍了如何通过修改现有字段的索引顺序获得好处,不过这一示例考量的只有两个 SQL 语句。然而,修改索引可能影响所索引的表的所有查询。本文解释了数据库如何选择索引并演示了修改现有索引可能产生的副作用

详情...
编程

SQL性能解析:Where 语句

1503 2023-05-10 14:46:00

前文描述了索引的结构,并解释了索引性能不佳的起因。下一步,我们来学习如何在 SQL 语句中发现和避免这些问题。我们从 where 语句开始吧。where 子句定义了 SQL 语句的查询条件,因此属于索引的核心功能领域:快速查找数据。虽然 where 子句在性能上有巨大的影响,语法经常上不太小心而导致数据库不得不扫描索引的很大部分。其结果是:写得不好的wher...

详情...
编程

SQL 性能解析:SQL慢索引 -1

1202 2023-05-09 11:29:00

尽管有树遍历的效率,还是存在索引搜索不如预期那样快的情况。长期以来,这种矛盾助长了“未生成索引”的神话。这个神话将重建索引作为神奇的解决方案。<神话篇>对这一神话和其他神话做了更详细的描述。目前,您可以理所当然地认为,从长远来看,重建索引并不能提高性能。即使在使用索引时,琐碎语句也可能很慢的真正原因可以在前面的部分的基础上解释。慢索引查询的第一个...

详情...
编程

SQL 性能解析:SQL 索引解析

1162 2023-05-07 11:24:00

“索引使查询更快”是我见过的对索引最基础的解释。虽然这句话对索引最重要的一面做了很好的解释,但不幸的是,还不够充分。本文将以不那么粗浅的,也没那么深入细节的方式描述索引结构。它只是为理解SQL性能方面提供了足够视野。索引是数据库中的一个独特的结构,使用 create index 语句创建。它需要自己的硬盘空间,并持有一份索引的表格数据的副本。这意味着索引是纯...

详情...
编程

Laravel 中如何在数据库事务中延迟队列及事件监听器

1505 2023-04-29 05:41:00

如果在数据库事务期间触发了队列或监听,可能会因为数据回滚而导致数据不一致。本文将介绍如何妥善处理。Laravel 开发者可能会碰到这么一个问题:在数据库事务期间触发了队列或事件监听。这一问题可能导致 ModelNotFoundException、数据不一致以及其他一些可能影响应用可靠性的问题。本文将说明数据库事务为什么重要、使用时会碰到哪些常见问题以及如何在...

详情...
编程

PostgreSQL: 详解索引 Include 子句

1934 2023-04-28 06:51:00

有些数据库 —— 比如 Microsoft SQL Server、IBM Db2 及发行版11之后的PostgreSQL —— 在创建索引语句时都支持 include 子句。PostgreSQL 引入这个特性是促使我发这篇长文解释 include 条件的直接原因。深入细节之前,我们先回顾一些(非聚簇)B-树的索引是如何工作的以及全能的index-only s...

详情...