go语言实现kv数据库 go语言实现简单kv存储( 四 )


对于本书中的项目,我们将MaxOpenConns限制为25个连接 。我发现这对于小型到中型的web应用程序和API来说是一个合理的初始值,但理想情况下 , 您应该根据基准测试和压测结果调整这个值 。
2、通常,更大的MaxOpenConns和MaxIdleConns值会带来更好的性能 。但是,效果是逐渐降低的,而且您应该注意,太多的空闲连接(连接没有被复用)实际上会导致性能下降和不必要的资源消耗 。
因为MaxIdleConns应该总是小于或等于MaxOpenConns,所以对于这个项目,我们还将MaxIdleConns限制为25个连接 。
3、为了降低上面第2点的风险,通常应该设置ConnMaxIdleTime值来删除长时间未使用的空闲连接 。在这个项目中 , 我们将设置ConnMaxIdleTime持续时间为15分钟 。
4、ConnMaxLifetime默认设置为无限大是可以的,除非您的数据库对连接生命周期施加了硬限制,或者您需要它协助一些操作,比如优雅地交换数据库 。这些都不适用于本项目,所以我们将保留这个默认的无限制配置 。
与其硬编码这些配置,不如更新cmd/api/main.go文件通过命令行参数读取配置 。
ConnMaxIdleTime值比较有意思,因为我们希望它传递一段时间,最终需要将其转换为Go的time.Duration类型 。这里有几个选择:
1、我们可以使用一个整数来表示秒(或分钟)的数量 , 并将其转换为time.Duration 。
2、我们可以使用一个表示持续时间的字符串——比如“5s”(5秒)或“10m”(10分钟)——然后使用time.ParseDuration()函数解析它 。
3、两种方法都可以很好地工作,但是在这个项目中我们将使用选项2 。继续并更新cmd/api/main.go文件如下:
File: cmd/api/main.go
GO语言(三十):访问关系型数据库(上)本教程介绍go语言实现kv数据库了使用 Godatabase/sql及其标准库中的包访问关系数据库的基础知识 。
您将使用的database/sql包包括用于连接数据库、执行事务、取消正在进行的操作等的类型和函数 。
在本教程中go语言实现kv数据库,您将创建一个数据库go语言实现kv数据库,然后编写代码来访问该数据库 。您的示例项目将是有关老式爵士乐唱片的数据存储库 。
首先go语言实现kv数据库,为您要编写的代码创建一个文件夹 。
1、打开命令提示符并切换到您的主目录 。
在 Linux 或 Mac 上:
在 Windows 上:
【go语言实现kv数据库 go语言实现简单kv存储】2、在命令提示符下,为您的代码创建一个名为 data-access 的目录 。
3、创建一个模块,您可以在其中管理将在本教程中添加的依赖项 。
运行go mod init命令 , 为其提供新代码的模块路径 。
此命令创建一个 go.mod 文件,您添加的依赖项将在其中列出以供跟踪 。
注意:在实际开发中,您会指定一个更符合您自己需求的模块路径 。有关更多信息,请参阅一下文章 。
GO语言(二十五):管理依赖项(上)
GO语言(二十六):管理依赖项(中)
GO语言(二十七):管理依赖项(下)
接下来,您将创建一个数据库 。
在此步骤中,您将创建要使用的数据库 。您将使用 DBMS 本身的 CLI 创建数据库和表,以及添加数据 。
您将创建一个数据库,其中包含有关黑胶唱片上的老式爵士乐录音的数据 。
这里的代码使用MySQL CLI,但大多数 DBMS 都有自己的 CLI,具有类似的功能 。
1、打开一个新的命令提示符 。
在命令行,登录到您的 DBMS,如下面的 MySQL 示例所示 。
2、在mysql命令提示符下,创建一个数据库 。
3、切到您刚刚创建的数据库,以便您可以添加表 。

推荐阅读