首页
学习
活动
专区
工具
TVP
发布

Golang语言社区

Golang语言社区(www.Golang.LTD)专业分享Go语言基础、提高等最新最前沿动态。
专栏作者
1903
文章
2798323
阅读量
586
订阅数
Golang语言情怀-第16期 Go 语言设计模式 工厂模式
因为这里的Student 的首字母S是大写的,如果我们想在其它包括创建Student 的实例(比如main包),引入model 包后,就可以直接创建Student 结构体的变量(实例)。但是问题来了,如果首字母是小写的,比如是:
李海彬
2021-01-21
6230
手把手教你学之golang反射(下)
事务有三个关键动作begin,rollback,commit。 begin后,要求所有操作要不全部成功,要不全部失败,所以我们要检查所有error,一旦出现错误就rollback,并且还要recover程序的panic,发现panic时也要rollback,直到最后确保无错,才能commit。 调用*sql.DB.Begin()方法后,我们会得到一个事务具柄,事务内的mysql交互都要通过它来进行,它也实现了Query()、Prepare()等方法。 所以我们定义一个接口:
李海彬
2020-11-23
2740
手把手教你学之golang反射(上)
orm这个概念相信同学们都非常熟悉,尤其是写过rails的同学,对active_record的强大肯定深有体会(得益于的method_missing和define_method方法,少写了海量代码),所以对orm我就不过多介绍了。本文要实现的orm只提供基本的CRUD(增删改查)和transaction(事务)功能,核心代码控制在300行左右。 如果想手把手照着写,需要先做一些准备工作。
李海彬
2020-11-23
5720
Golang学习笔记之Golang与Mysql交互
Go标准库中没有数据库驱动。参见http://golang.org/s/sqldrivers获取第三方驱动。 这里选择了Go-MySQL-Driver这个实现。地址是:https://github.com/go-sql-driver/mysql/。 安装:go get github.com/go-sql-driver/mysql 官方database/sql包文档:https://studygolang.com/pkgdoc 有关于MySQL基本操作可以去看我的另一篇简书:https://www.jianshu.com/p/2e01f4c6b626 使用的数据库定义如下
李海彬
2018-12-28
2.3K1
Go中的依赖注入
I have written a small utility package to handle dependency injection in Go (it's in tinrab/kit, among other things). The goal was simplicity and for it to fit well in my current side project.
李海彬
2018-10-08
9910
二十种实战调优MySQL性能优化的经验
今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情。当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能。这里,我们不会讲过多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库。希望下面的这些优化技巧对你有用。
李海彬
2018-07-26
9550
48. 访问MySql数据库增删改查和连接池及空字段处理 | 厚土Go学习笔记
和上一节相比,go 语言访问 MySql 数据库可以有更好的写法,今天来讲一下连接池。同时,也演示一下当表字段内容为 NULL 时,go 语言的处理。 首先我们建立一个新的数据库 cofoxdb 和数
李海彬
2018-03-28
1.1K0
MySQL 读写分离
一 什么是读写分离 MySQL Proxy最强大的一项功能是实现“读写分离(Read/Write Splitting)”。基本的原理是让主数据库处理事务性查询,而从数据库处理SELECT查询。数据库
李海彬
2018-03-27
5.4K0
golang学习之旅:使用go语言操作mysql数据库
1.下载并导入数据库驱动包 官方不提供实现,先下载第三方的实现,点击这里查看各种各样的实现版本。 这里选择了Go-MySQL-Driver这个实现。地址是:https://github.com/go-sql-driver/mysql/。 然后按照里面的说明下载驱动包: $ go get github.com/go-sql-driver/mysql 最后导入包即可: import "database/sql" import _ "github.com/go-sql-driver/mysql" 2.连接至数据库
李海彬
2018-03-27
1.7K0
Go语言-连接数据库SQLite、MySQL、Oracle - Mike_zh
本文目录 说明: go语言连接数据库不像Java那么方便,本文分别介绍了连接三种典型的数据库的驱动以及连接方法:小型,SQLite;中型,MySQL;大型,Oracle. 1.Go连接SQLite 1_1.SQLite推荐驱动 https://github.com/mattn/go-sqlite3 1_2.SQLite连接示例代码 示例代码如下: package main import ( "database/sql" "fmt" _ "github.com/
李海彬
2018-03-26
2.6K0
Go语言操作mysql数据库简单例子
Go语言操作数据库非常的简单, 他也有一个类似JDBC的东西"database/sql" 实现类是"github.com/go-sql-driver/mysql" 使用过JDBC的人应该一看就懂 对日期的处理比较晦涩,没有JAVA流畅: package main import ( "database/sql" _ "github.com/go-sql-driver/mysql" "log" "time" ) /* create table t( id
李海彬
2018-03-23
3.6K0
高可用性、负载均衡的mysql集群解决方案
一、mysql的市场占有率 二、mysql为什么受到如此的欢迎 三、mysql数据库系统的优缺点 四、网络服务器的需求 五、什么是mysql的集群 六、什么是负载均衡 七、mysql集群部署和实现方法 八、负载均衡的配置和测试 九、Mysql集群系统的测试(测试方案+测试脚本+测试结果分析) l mysql的市场占有率 MySQL是世界上最流行的开源数据库,已有1100多万的击活安装,每天超过五万的下 载。MySQL为全球开发者、DBA和IT管理者在可靠性、性能、易用性方面提供了选 择。 第三方市场调查机
李海彬
2018-03-23
4.7K0
数据库性能优化(MySQL)
序: 即使有较长的缓存有效期和较理想的缓存命中率,但是缓存的创建和缓存过期后的重建都是需要访问数据库的。对数据库写操作不是很容易引入缓存策略。 11.1 查看数据库状态 可以通过show status、show innodb status 来查看MySQL数据库的状态,使用mysqlreport这个第三方工具可使数据库状态报告更好看(mysqlreport本质是通过MySQL内部命令和工具来统计状态的)。 11.2 正确使用索引 在影响数据库查询性能的众多因素中,索引绝对是一个重量级
李海彬
2018-03-23
3.2K0
MySQL动态hash结构
MySQL动态hash结构 1.常用的实现方式 前一段时间一直在研究mysql中的hash结构,大概搞清楚了这种no empty slot的hash结构,读了几篇关于mysql中的hash
李海彬
2018-03-23
1.9K0
游戏服务器之数据存档(应用数据引擎redis)
游戏服务器之数据存档:把逻辑服务器的角色数据存档到mysql和redis,分析的是较早前的一个游戏项目的存档处理。有些设计缺点,会提出优化方式。 设计上: 逻辑服务器在其逻辑线程里读写数据,数据缓存在redis。数据服务器接收消息,并执行写sql和备份写sql和记录存档日志(分线程来写)。写sql的执行都有备份。 有些需要优化的点: 所有的在线角色的数据在游戏启动时就读到逻辑服务器。 所有的有关数据引擎(redis和mysql)的操作在数据服务器的逻辑线程里处理。 数据服务器和逻辑服务器使用自定义存档消息
李海彬
2018-03-22
2.3K0
手游页游和端游的服务端的架构与区别
类型1:卡牌、跑酷等弱交互服务端 卡牌跑酷类因为交互弱,玩家和玩家之间不需要实时面对面PK,打一下对方的离线数据,计算下排行榜,买卖下道具即可,所以实现往往使用简单的 HTTP服务器:   登录时可
李海彬
2018-03-22
3K0
转--shell脚本备份mysql数据库
路 获取mysql服务器所有数据库名称,过滤掉不需要备份的数据库 通过mysqldump来for循环导出所有的数据库的sql文件 用zip加密压缩所有的sql文件 定期进行数据清理工作 shell代码 数据库导出代码 #!/bin/bash #1.数据库信息定义 mysql_host="192.168.1.1" mysql_user="root" mysql_passwd="root" #sql备份目录 root_dir="/backup" back_dir
李海彬
2018-03-21
3.1K0
mysql_stmt_prepare failed! error(1461)Can't create more than
1461错误, mysql_stmt_prepare failed! 今天现场咨询我们问如何处理1461错误。 mysql_stmt_prepare failed! error(1461)Can't create more than max_prepared_stmt_count statements (current value: 16382) 。 给出的回复如下: max_prepared_stmt_count参数限制了同一时间在mysqld上所有session中prepared 语句的上限。 它的取值
李海彬
2018-03-20
2.4K0
mysql的空值与NULL的区别
Mysql数据库是一个基于结构化数据的开源数据库。SQL语句是MySQL数据库中核心语言。不过在MySQL数据库中执行SQL语句,需要小心两个陷阱。   陷阱一:空值不一定为空   空值是一个比较特殊的字段。在MySQL数据库中,在不同的情形下,空值往往代表不同的含义。这是MySQL数据库的一种特性。如在普通的字段中(字符型的数据),空值就是表示空值。但是如果将一个空值的数据插入到TimesTamp类型的字段中,空值就不一定为空。此时为出现什么情况呢   我先创建了一个表。在这个表中有两个字段:User_i
李海彬
2018-03-20
3.6K0
47. 访问MySql数据库实现增删改查 | 厚土Go学习笔记
作为服务端程序,对数据库的访问是很常见的操作。我们来熟悉一下go语言访问MySql数据库的基本操作(增删改查)。 数据库访问需要用到标准库database/sql和mysql的驱动"github.com/go-sql-driver/mysql"。这两个包都需要引用。mysql 的驱动因为只是需要它的init()初始化,所以需要采用下划线引用的方式。 import ( "database/sql" _"github.com/go-sql-driver/mysql" "fmt"
李海彬
2018-03-19
1K0
点击加载更多
社区活动
RAG七天入门训练营
鹅厂大牛手把手带你上手实战
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档