创建限制0.5个CPU和0.5G内存的MySQL容器

docker run -itd --name mysql --cpu-quota=50000 --memory 512M --rm -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql:5.7

创建person表

DROP TABLE IF EXISTS person;
CREATE TABLE person ( id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, name varchar(10) ) ENGINE = InnoDB CHARSET = utf8mb4;

插入10w条记录

DROP PROCEDURE IF EXISTS init_person_data;
DELIMITER $
CREATE PROCEDURE init_person_data()
BEGIN
DECLARE i INT DEFAULT 1;
WHILE i <=100000 DO
INSERT INTO person(name) VALUES(CONCAT(CAST(i AS char), 'abc'));
SET i = i+1;
END WHILE;
END $
DELIMITER ;
CALL init_person_data();

跑超慢SQL,耗时26分30秒左右

SELECT DISTINCT p1.name FROM person p1 LEFT JOIN person p2 ON p1.name = p2.name;

mysqld的CPU使用率接近50%

查看mysqld进程打开的业务数据库表文件

lsof -p 20241 | grep "/var/lib/mysql/" | grep -e "\.ibd" | grep -v "/var/lib/mysql/mysql"

test是数据库名字,person是表名字。

查看当前用户正在运行的线程(root可以看到所有)
show full processlist;

说明超慢SQL还没有执行结束。

查询正在执行的SQL的数据库名和表名的更多相关文章

  1. SQL SERVER查询数据库所有的表名/字段

    SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='subject' --表名 1.利用sysobjects系统表 在这个表中,在数据 ...

  2. sql server 查询数据库所有的表名+字段

    SELECT * FROM INFORMATION_SCHEMA.columns WHERE TABLE_NAME='Account' SELECT    (case when a.colorder= ...

  3. sql查询数据库中所有表名

    查询数据库里所有表名和字段名的语句SQL 查询所有表名:SELECT NAME FROM SYSOBJECTS WHERE TYPE='U'SELECT * FROM INFORMATION_SCHE ...

  4. 使用SQL查询所有数据库名和表名

    使用SQL查询所有数据库名和表名 MySQL中查询所有数据库名和表名 查询所有数据库 show databases; 1 1 查询指定数据库中所有表名 select table_name from i ...

  5. [转载] SQL获取所有数据库名、表名、储存过程以及参数列表

    查询一个数据库中所有表字段属性的sql语句       1.获取所有用户名: SELECT name FROM Sysusers where status='2' and islogin='1' is ...

  6. SQL获取所有数据库名、表名、储存过程以及参数列表

    SQL获取所有数据库名.表名.储存过程以及参数列表 1.获取所有用户名:SELECT name FROM Sysusers where status='2' and islogin='1'islogi ...

  7. SQLserver查询数据库所有字段-表名

    SELECT * FROM INFORMATION_SCHEMA.columns WHERE TABLE_NAME='Account' SELECT (case when a.colorder=1 t ...

  8. MySql 查询数据库中所有表名

    查询数据库中所有表名select table_name from information_schema.tables where table_schema='csdb' and table_type= ...

  9. MySql 查询数据库中所有表名以及对比分布式库中字段和表的不同

    查询数据库中所有表名select table_name from information_schema.tables where table_schema='数据库名' and table_type= ...

  10. SQL中如何修改数据库名、表名、列名?

    文章目录 1.SQL中如何修改数据库的名字? 2.SQL中如何修改表的名字? 3.SQL中如何修改列的名字? 4.SQL中如何修改列的数据类型?(未完成,待续) 1.SQL中如何修改数据库名? 语法 ...

随机推荐

  1. .net core Ubuntu下docker部署(精简版)

    一.首先先添加一个.netCore 项目,选择启用docker(我用的是vs2019,之前的可能需要手动点击项目添加docker支持) 没有的话需要手动添加 之后你的项目会存在这个dockerfile ...

  2. slate源码解析(二)- 基本框架与数据模型

    源码架构 首先来看下最核心的slate包下的目录: 可以看到,作为一个开源富文本库,其源码是相当之少.在第一篇文章中说过,Slate没有任何开箱即用的功能,只提供给开发者用于构建富文本所需的最基本的一 ...

  3. echart折线图异常多出一条连接线

    开发背景:vue3父传子,父中调子组件echarts图表 问题:第一次进入数据图表正常,再次进入不更新图表数据的情况下,图表异常多出来一条开始到结尾的连接线 原因:上次数据没清空 解决:请求完接口后先 ...

  4. PostgreSQL 打印详细错误调用栈 - pg_backtrace

    一.用法 create extension pg_backtrace; select pg_backtrace_init(); 二.示例 postgres=# select count(*)/0.0 ...

  5. rn项目启动时卡在Task :app:checkDebugAarMetadata

    原因是Gradle在下载依赖,打开Android Studio就可以看到右下角在下载.

  6. 时钟切换电路(无毛刺)——clock switching glitch free

    0.引言 随着越来越多的多频时钟被应用在今天的芯片中,尤其是在通信领域中,经常需要在芯片运行时切换时钟线的源时钟.这通常是通过在硬件中复用两个不同的频率时钟源,并通过内部逻辑控制多路选择器选择线来实现 ...

  7. VMware-包体选择

    3.二进制包如何选择3.1选择适合当前系统的版本号:    ●找不到适合的,才去尝试别的系统版本号   ●el6兼容el5; el5无法安装el63.2选择适合cpu的架构:   ●x86_ _64包 ...

  8. PS技能之电子签名+修白牙齿

    PS技能 NO.1 电子签名 有时候由于时空的限制,本人无法签字,那么电子签名就有了它的作用啦![注:谨慎使用] 亲试有效的教程,现在就是做笔记的时候啦! 教程链接如下: https://blog.c ...

  9. python代码编译总结-用于代码加密

    基于一个自废武功式的决定,服务需要做成标准件在客户服务器上运行,因此调研了python代码加密的相关内容.py的代码混淆没有被采用,而是采用cython编译成二进制文件进而掩盖源码的方式对代码加密. ...

  10. echarts 总结

    ECharts访问链接 https://blog.csdn.net/Yi2008yi/article/details/122808328 :force-use-old-canvas="tru ...