zoukankan      html  css  js  c++  java
  • mysql性能测试(索引)

    首先,使用Talend随机生成一千万条数据:

    image

    数据库表中现在有1千万+的数据:

    mysql> select count(*) from zhangchao;
    +----------+
    | count(*) |
    +----------+
    | 10040005 |
    +----------+
    1 row in set (2.50 sec)

    不加索引的情况下,查询一条记录的时间为3.02s

    mysql> select * from zhangchao where x = "bq2i2T";
    +--------+--------+
    | x      | y      |
    +--------+--------+
    | bq2i2T | DRt5Mx |
    +--------+--------+
    1 row in set (3.02 sec)
    
    mysql> show create table zhangchao;
    +-----------+------------------------------------------------------------------------------------------------------------------------------------+
    | Table     | Create Table                                                                                                                       |
    +-----------+------------------------------------------------------------------------------------------------------------------------------------+
    | zhangchao | CREATE TABLE `zhangchao` (
      `x` varchar(100) DEFAULT NULL,
      `y` varchar(100) DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
    +-----------+------------------------------------------------------------------------------------------------------------------------------------+
    1 row in set (0.00 sec)

    给表zhangchao的x列创建索引,耗时45.43s:

    mysql> alter table zhangchao add index (x);
    Query OK, 0 rows affected (45.43 sec)
    Records: 0  Duplicates: 0  Warnings: 0
    
    mysql> show create table zhangchao;
    +-----------+-----------------------------------------------------------------------------------------------------------------------------------------------------+
    | Table     | Create Table                                                                                                                                        |
    +-----------+-----------------------------------------------------------------------------------------------------------------------------------------------------+
    | zhangchao | CREATE TABLE `zhangchao` (
      `x` varchar(100) DEFAULT NULL,
      `y` varchar(100) DEFAULT NULL,
      KEY `x` (`x`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
    +-----------+-----------------------------------------------------------------------------------------------------------------------------------------------------+
    1 row in set (0.00 sec)

    在执行同样的查询,耗时0.09s:

    mysql> select * from zhangchao where x = "bq2i2T";
    +--------+--------+
    | x      | y      |
    +--------+--------+
    | bq2i2T | DRt5Mx |
    +--------+--------+
    1 row in set (0.09 sec)

    和没有加索引的性能差别:3.02/0.09 = 33.555倍

  • 相关阅读:
    CodeForces 522B 手速题
    mybatis多数据源报错
    as依赖解决报错
    As 400错
    maven直接饮用jar包的写法
    测试一下多线程同时往list中添加元素会不会出问题
    jmeter中判断数据库是否存在相应的记录
    jmeter打开图形化界面时指定代理
    wz
    初阳胜阴
  • 原文地址:https://www.cnblogs.com/justinzhang/p/4795160.html
Copyright © 2011-2022 走看看