mysql insert 没反应_MySQL中insert语句没有响应的问题分析(r11笔记第21天)

MySQL中insert语句没有响应的问题分析(r11笔记第21天)

发布时间:2020-08-10 01:28:18

来源:ITPUB博客

阅读:92

作者:jeanron100

今天开发的一个同学问我一个MySQL的问题,说在测试数据库中执行一条Insert语句之后很久没有响应。我一看语句是一个很常规的insert

into xxx values形式的语句。看起来有些不太合乎常理啊,我对这类问题立马来了兴趣,准备好好看看到底是什么原因。

向开发同学了解了环境之后,我登录到服务端,首先查看是否可能是磁盘空间不足导致的问题。结果df -h的结果显示,空间还绰绰有余。

使用show proceslist查看线程情况。

f82d71d3e7c86edeaf1c7c7b5e52637e.png

可以看到大量的线程是Waiting for table level lock ,开发同学提交的SQL语句也被锁住了,也是同样的锁。

| 253688 | webadmin | xxxx   | pt_test | Query   |    171 | Waiting for

table level lock | insert into ptp_jgg(sub_type) values(9999)这类表级锁好像在MyISAM中还是看到过,结果查看表的存储引擎,发现都是InnoDB,

对于这类问题的一种解决方法,就是使用kill的方式杀掉线程。

mysql&

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQLINSERT语句用于向表插入数据。根据引用和引用提供的信息,以下是MySQLINSERT语句的五种用法的介绍和示例: 1. 单行插入: 使用VALUES参数,可以在一条INSERT语句插入一行数据。 ```sql INSERT INTO table_name (column1, column2, column3) VALUES (value1, value2, value3); ``` 示例: ```sql INSERT INTO a (id, name, type) VALUES (1, 'A1', 'T1'); ``` 2. 多行插入: 如果要插入多行数据,可以在一条INSERT语句使用多个VALUES参数。 ```sql INSERT INTO table_name (column1, column2, column3) VALUES (value1, value2, value3), (value4, value5, value6), ...; ``` 示例: ```sql INSERT INTO a (id, name, type) VALUES (1, 'A1', 'T1'), (2, 'A2', 'T2'); ``` 3. 插入查询结果: 可以使用SELECT语句作为VALUES参数,将查询结果插入到目标表。 ```sql INSERT INTO table_name (column1, column2, column3) SELECT column1, column2, column3 FROM another_table WHERE condition; ``` 示例: ```sql INSERT INTO a (id, name, type) SELECT id, name, type FROM b WHERE condition; ``` 4. 插入默认值: 如果目标表的某些列有默认值,可以使用DEFAULT关键字将默认值插入到这些列。 ```sql INSERT INTO table_name (column1, column2, column3) VALUES (value1, DEFAULT, value3); ``` 示例: ```sql INSERT INTO a (id, name, type) VALUES (1, DEFAULT, 'T1'); ``` 5. 插入部分列: 如果只想插入表的部分列,可以在INSERT语句指定要插入的列。 ```sql INSERT INTO table_name (column1, column2) VALUES (value1, value2); ``` 示例: ```sql INSERT INTO a (id, name) VALUES (1, 'A1'); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值