代码可以运行,但是为什么获取数据库数据很慢呢?

package main

import (
    "database/sql"
    "fmt"
    _ "github.com/bmizerany/pq"
)

type Book struct {
    Id          int
    Title       string
    Author      string
    Content     string
    CreatedTime string
}

func openDB() *sql.DB {
    db, err := sql.Open("postgres", "user=root password=cc1314 dbname=pgdemo01 sslmode=disable")
    if err != nil {
        return nil
    }
    return db
}

func closeDB(db *sql.DB) error {
    err := db.Close()
    if err != nil {
        return err
    }
    return err
}

func (b *Book) getById(id string) error {
    db := openDB()
    defer closeDB(db)

    rows, err := db.Query("SELECT * FROM book where id=" + id)
    if err != nil {
        return err
    }

    for rows.Next() {
        var id int
        var title string
        var author string
        var content string
        var createdtime string
        err = rows.Scan(&id, &title, &author, &content, &createdtime)

        if err != nil {
            return err
        }

        b.Id = id
        b.Title = title
        b.Author = author
        b.Content = content
        b.CreatedTime = createdtime

    }
    return nil
}
func main() {
    var b Book
    b.getById("2")
    fmt.Printf("b:%v\n", b)
}

共 9 个回复


descusr

系统是几位的?

# 0

descusr

go对64位的支持比较好。

# 2

descusr

还有,go对windows的支持不如linux的好。你能升级一下你的系统么?用win7也好过xp啊

# 3

polaris

很慢是什么情况?多慢?Windows支持不太好,也并不是说就很慢。

# 4

bianweiall

web测试,输入网址后回车开始,等3秒内容才能显示在网页上, 我的笔记本win7 64位 i5 4G内存

# 5

bianweiall

rows, err := db.Query("SELECT * FROM book where id=" + id)

查出原因了,是执行这句用了3秒钟,为什么呢?

# 6

bianweiall

找到原因了,无线网络一关就没事了,也不晓得这是个什么原因!

# 7

Qesy

哈哈

# 8