首页 > 其他分享 >go使用连接池连接clickhouse

go使用连接池连接clickhouse

时间:2022-12-10 20:58:13浏览次数:48  
标签:err nil pool stmt clickhouse go 连接池

package main

import (
    "database/sql"
    "fmt"
    "time"

    _ "github.com/ClickHouse/clickhouse-go"
)

// 连接池的最大数量
const maxConnections = 10

func connect() (*sql.DB, error) {
    // 创建连接池
    pool, err := sql.Open("clickhouse", "tcp://127.0.0.1:9000?debug=true")
    if err != nil {
        return nil, err
    }

    // 设置连接池的最大连接数
    pool.SetMaxOpenConns(maxConnections)

    // 设置连接池中最多可以有多少空闲连接
    pool.SetMaxIdleConns(maxConnections / 2)

    // 设置连接的最大空闲时间
    pool.SetConnMaxLifetime(time.Minute * 5)

    // 测试连接是否可用
    if err = pool.Ping(); err != nil {
        return nil, err
    }

    return pool, nil
}

func main() {
    db, err := connect()
    if err != nil {
        panic(err)
    }
    defer db.Close()

    // 构造插入语句
    stmt := `
    INSERT INTO mytable (id, name, age)
    VALUES
    `
    for i := 0; i < 1000; i++ {
        stmt += fmt.Sprintf("(%d, 'Name%d', %d),", i, i, i%100)
    }
    stmt = stmt[:len(stmt)-1]

    // 执行插入语句
    result, err := db.Exec(stmt)
    if err != nil {
        panic(err)
    }

    // 输出插入结果
    fmt.Println(result.RowsAffected())
}

 

标签:err,nil,pool,stmt,clickhouse,go,连接池
From: https://www.cnblogs.com/wt11/p/16972285.html

相关文章

  • go使用tcp实现两边通讯
    描述:客户端可以接受服务端信息&写数据导服务端服务端也一样服务端代码packagemainimport( "bufio" "fmt" "io" "net" "os" "strings")funcprocess(conn......
  • go解析未知json
    使用go语言写一段代码,将未知结构的json解析出来  这里是一个例子: packagemainimport("encoding/json""fmt")funcmain(){v......
  • 传奇GOM引擎版本架设教程
    传奇GOM引擎版本架设​传奇GOM引擎版本我们架设游戏需要用到的工具:​版本(游戏类型服务端)、DBC2000(游戏数据库)、RAR(解压工具)、传奇客户端、服务器、网盘​先把这些架设工具准......
  • django练习
    创建django项目:1.win+r打开cmd2.进入到你想要创建django项目的目录输入指令创建django项目django-adminstartproject项目名称在cmd输入cddjangotest进入项......
  • python之路46 django request对象 form表单 pycharm连接数据库 ORM简介
    静态文件配置1.编写一个用户登录页面2.静态文件不怎么经常变化的文件主要针对html文件所使用的到的各种资源css文件、js文件、img文件、第三方框架文件......
  • 初始Django
    web框架web框架本质上可以看成是一个很强大的socket服务端,用户的浏览器可以看成是拥有可视化界面的socket客户端,两者通过网络请求实现数据交互,也可以从框架层面上先简单的......
  • Django框架2、静态文件配置、form表单、request对象、pycharm链接数据库、django链接
    一、静态文件配置1、静态文件​ 指不经常发生变化的文件,主要针对html文件所使用到的各种资源​ 是前端已经写好了的能够直接调用或者使用的文件都可以称之为静态文件,比......
  • Django链接数据库 增删改查/配置
    Django静态文件配置服务端需要生成HTML文件,需要一些额外的CSS,JS代码文件以及img图片等,还有一些脚本帮助我们渲染网页页面,在Django中我们可以把这些文件统称为静态文件。......
  • 静态文件配置 django连接MySQL django模型层初识 ORM基本语句
    目录静态文件配置1.问题描述2.静态文件3.资源访问form表单属性补充actionmethod请求方法get请求post请求views层request对象request.methodrequest.POSTrequest.GETpyc......
  • Django只session
    1.session流程2.添加sessiondefindex(request):#添加sessionrequest.session["set_session"]="defaulit001"returnHttpResponse("测试效能")设置s......