真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

go語(yǔ)言mysql Go語(yǔ)言項(xiàng)目開發(fā)實(shí)戰(zhàn) 孔令飛

Go語(yǔ)言使用gorm對(duì)MySQL進(jìn)行性能測(cè)試

之前寫過(guò)了Go語(yǔ)言gorm框架MySQL實(shí)踐,其中對(duì)gorm框架在操作MySQL的各種基礎(chǔ)實(shí)踐,下面分享一下如何使用gorm框架對(duì)MySQL直接進(jìn)行性能測(cè)試的簡(jiǎn)單實(shí)踐。

為原州等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及原州網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為網(wǎng)站建設(shè)、網(wǎng)站制作、原州網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!

這里我使用了一個(gè)原始的Go語(yǔ)言版本的 FunTester 測(cè)試框架,現(xiàn)在只有一個(gè)基本的方法,實(shí)在是因?yàn)镚o語(yǔ)言特性太強(qiáng)了。框架設(shè)計(jì)的主要思路之一就是利用Go語(yǔ)言的閉包和方法參數(shù)特性,將一個(gè) func() 當(dāng)做性能測(cè)試的主題,通過(guò)不斷運(yùn)行這個(gè) func() 來(lái)實(shí)現(xiàn)性能測(cè)試。當(dāng)然還有另外一個(gè)思路就是運(yùn)行一個(gè)多線程任務(wù)類,類似 Java 版本的 com.funtester.base.constaint.ThreadBase 抽象類,這樣可以設(shè)置一些類的屬性,綁定一些測(cè)試資源,適配更多的測(cè)試場(chǎng)景。

下面演示select的性能測(cè)試,這里我用了隨機(jī)ID查詢的場(chǎng)景。

這里我使用從35開始遞增的ID進(jìn)行刪除。

這里使用了select的用例部分,隨機(jī)ID,然后更新name字段,隨機(jī)10個(gè)長(zhǎng)度的字符串。

這里用到了 FunTester 字段都是隨機(jī)生成。

到這里可以看出,性能測(cè)試框架用到的都是gorm框架的基礎(chǔ)API使用,這里MySQL連接池的管理工作完全交給了gorm框架完成,看資料說(shuō)非常牛逼,我們只需要設(shè)置幾個(gè)參數(shù)。這個(gè)使用體現(xiàn)很像 HttpClient 設(shè)置 HTTP 連接池類似,這里我們也可以看出這些優(yōu)秀的框架使用起來(lái)都是非常簡(jiǎn)單的。

PS:關(guān)于gorm的基礎(chǔ)使用的請(qǐng)參考上一期的文章Go語(yǔ)言gorm框架MySQL實(shí)踐。

mysql 里面有g(shù)o的用法嗎

mysql不像 SQL Server,寫一段SQL,要go了才執(zhí)行,默認(rèn) 分號(hào)就執(zhí)行了。

在網(wǎng)上找了一大堆例子,最后簡(jiǎn)化一下把,一下會(huì)從安裝mysql開始,與大家分享一下如何用go鏈接服務(wù)器上的mysql

我用的是ubuntu系統(tǒng)

1,安裝mysql:sudo apt-get install mysql-server (記住root的密碼假設(shè)密碼為root123)

2,進(jìn)入mysql:mysql -uroot -p 然后輸入密碼

3,創(chuàng)建一個(gè)數(shù)據(jù)庫(kù):create database people;

4,給數(shù)據(jù)庫(kù)people添加用戶:GRANT ALL PRIVILEGES ON people.* TO peo@localhost IDENTIFIED BY "peo123";

5,調(diào)整數(shù)據(jù)庫(kù)配置以便于遠(yuǎn)程訪問(wèn):GRANT ALL PRIVILEGES ON people.* TO peo@“%” IDENTIFIED BY "peo123"; 然后推出mysql執(zhí)行:sudo nano /etc/mysql/my.cnf

修改bind-address=127.0.0.1 到bind-address= 機(jī)器的IP(就是安裝mysql的機(jī)器的ip)

6,重啟mysql:sudo /etc/init.d/mysql restart

7,建表:首先進(jìn)入mysql:mysql -u peo -p

進(jìn)入數(shù)據(jù)庫(kù)下:use people

創(chuàng)建表:create table hello(age int, name varchar(10));

插入一條數(shù)據(jù):insert into hello(age, name) values(19, "hello world");

至此數(shù)據(jù)庫(kù)方面的工作已經(jīng)做好,接下來(lái)是go語(yǔ)言了

8,首先下載mysql的驅(qū)動(dòng)包(應(yīng)該是這樣叫)執(zhí)行 go get github.com/go-sql-driver/mysql代碼會(huì)下載到你的gopath下(執(zhí)行export可以查看gopath)

接著就是下面的代碼了

package main

import "database/sql"

import _ "github.com/go-sql-driver/mysql"

import "encoding/json"

import "fmt"

type User struct {

Age int `json:"age"`

Name string `json:"name"`

}

func main() {

fmt.Println("start")

db, err := sql.Open("mysql", "peo:peo123@tcp(192.168.0.58:3306)/people?charset=utf8")

if err != nil {

panic(err)

}

rows, err := db.Query("select age,name from hello")

if err != nil {

panic(err)

}

defer rows.Close()

for rows.Next() {

user := User{}

err = rows.Scan(user.Age, user.Name)

if err != nil {

painc(err)

}

b, _ := json.Marshal(user)

fmt.Println(string(b))

}

println("end")

}

至此結(jié)束

go語(yǔ)言中使用mysql sql語(yǔ)句

Go語(yǔ)言操作數(shù)據(jù)庫(kù)非常的簡(jiǎn)單,

他也有一個(gè)類似JDBC的東西"database/sql"

實(shí)現(xiàn)類是"github.com/go-sql-driver/mysql"

使用過(guò)JDBC的人應(yīng)該一看就懂

對(duì)日期的處理比較晦澀,沒(méi)有JAVA流暢:

復(fù)制代碼代碼如下:

package main

import (

"database/sql"

_ "github.com/go-sql-driver/mysql"

"log"

"time"

)

/*

create table t(

id int primary key auto_increment,

name varchar(20) not null,

ts timestamp

);

*/

func insert(db *sql.DB) {

stmt, err := db.Prepare("insert into t(name,ts) values(?,?)")

defer stmt.Close()

if err != nil {

log.Println(err)

return

}

ts, _ := time.Parse("2006-01-02 15:04:05", "2014-08-28 15:04:00")

stmt.Exec("edmond", ts)

}

func main() {

db, err := sql.Open("mysql", "xx:xx@tcp(127.0.0.1:3306)/mvbox?charset=utf8")

if err != nil {

log.Fatalf("Open database error: %s\n", err)

}

defer db.Close()

err = db.Ping()

if err != nil {

log.Fatal(err)

}


文章標(biāo)題:go語(yǔ)言mysql Go語(yǔ)言項(xiàng)目開發(fā)實(shí)戰(zhàn) 孔令飛
轉(zhuǎn)載源于:http://weahome.cn/article/dojoego.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部