zoukankan      html  css  js  c++  java
  • mysql




    select
    ip, active from (select * from %s where p_id = %d order by create_time desc) as tb group by ip having active = 1

    一些命令:

    show create teble table_name G;

    MYSQL压力测试之mysqlslap

    create table user2(userid int(4) primary key not null auto_increment, id int);
    测试表格
    测试运行5000次查询
    
    
    mysqlslap -h127.0.0.1 -uroot -pyourpassword --concurrency=1 --iterations=1 --create-schema=vimi --query='select * from vimi.user2;' --engine=innodb --number-of-queries=5000 
    
    自定义插入
    

    mysqlslap -h127.0.0.1 -uroot -pyourpassword --concurrency=500 --iterations=1 --create-schema=vimi --query='insert into vimi.user2(id) value(1)' --engine=innodb --number-of-queries=5000

      

    package main
    
    import (
        "database/sql"
        "fmt"
        "time"
    
        //"time"
        _ "github.com/go-sql-driver/mysql"
    )
    
    func main() {
        source := fmt.Sprintf("%s:%s@(%s:%s)/%s?parseTime=true&sql_mode=ansi",
            "root",
            "yourpassword",
            "127.0.0.1",
            "3306",
            "transaction")
        db, err := sql.Open("mysql", source)
        defer db.Close()
    
        fmt.Println(db, err)
        fmt.Println()
        // rows, err := db.Query("select * from user")
        // checkErr(err)
        // for rows.Next() {
        //     var userid, id int
        //     err = rows.Scan(&userid, &id)
        //     checkErr(err)
        //     fmt.Println(userid, id)
        // }
        ch := make(chan bool, 1)
        stop := false
        go func() {
            time.Sleep(time.Second)
            ch <- true
        }()
        go func() {
            stop = <-ch
        }()
        count := 0
        sql := `insert user set id = 444`
        for {
            count++
            stmt, err := db.Prepare(sql)
            checkErr(err)
    
            _, err = stmt.Exec()
            checkErr(err)
            if stop {
                break
            }
        }
        fmt.Println(count)
    }
    
    func checkErr(err error) {
        if err != nil {
            fmt.Println(err)
        }
    }
    测试程序

    ----------------------------------------------------------最终版mysql效率测试--------------------------------------------------------------------------------------

    环境:

     golang:1s大概309条

    mysqlslap插入5000条,大概需要15s

    golang:1s大概也是241---347条左右

    mysqlslap插入5000条,大概需要16--20s可能表格变大了,但是删除后还是需要15s左右,看来表格大小不影响

    golang:还是350左右,但是350--429的偏多

    mysqlslap插入5000条,大概需要13s

     golang:343

    mysqlslap插入5000条,大概需要14s,,,,,有点坑了哈,怎么这样的

    我生气了

    还是一样的数据,我要买个云MYSQL服务器了。

    买了一个云服务器

    golang:还是380条,不过还是快了一丢丢,感觉自己写错了

    mysqlslap插入5000条,大概需要2.02s,,,,,太快了

  • 相关阅读:
    Clipper库中文文档详解
    uboot makefile构建分析
    nvidia tk1使用记录--基本环境搭建
    学习
    es6 es7新语法
    react dva发送请求详解(转)
    antDesign表单getFieldDecorator
    react dav
    js实现截取a标签的href属性和内容
    react学习
  • 原文地址:https://www.cnblogs.com/liuweimingcprogram/p/9473242.html
Copyright © 2011-2022 走看看