zoukankan      html  css  js  c++  java
  • pg数据库数据表异常挂起

    pg数据库即是PostgreSQL数据库。

    前几天在一个Java项目中,出现运行Java程序后,pg数据库的数据表异常挂起。而且是在某台电脑上出现的,重装数据库也没用,其它电脑未能复现,是个很奇怪的现象。

    异常挂起的主要表现是:

    1、使用pgAdmin选中相应的表,会导致pgAdmin未响应,并且很长时间都无法恢复。

    2、使用pgAdmin直接sql命令增删查改都无法执行,执行所花时间从几十毫秒一直增长到几分钟,预计会一直增长下去。

    3、只有重启PostgreSQL服务才能让出现异常的数据表恢复正常,恢复到既能选中,又能通过sql语句增删改查。

    最终经过排查,确定出是因为Java中使用truncate命令对数据表进行清表操作导致了数据表异常挂起,之后把truncate命令换成了delete命令则一切正常。

    在排查过程中,在pgAdmin中使用truncate命令直接清理会出现异常的表,也能复现前面的问题,而delete正常使用。

    下面附上truncate、delete以及drop的区别:drop、truncate和delete的区别

    至于这个特例情况下,truncate为什么会导致数据表挂起,我一直没想明白,希望有知道的人可以帮忙指点迷津。

  • 相关阅读:
    穷举 迭代 while
    for 循环
    switch case
    if else 语句
    数据类型
    语句的输入、输出
    控件——DataGridview
    mysql-bin.000001文件的来源及处理方法
    /var/log目录下的20个Linux日志文件功能详解
    CountDownLatch
  • 原文地址:https://www.cnblogs.com/kumu/p/6959777.html
Copyright © 2011-2022 走看看