快轉到主要內容

解决 postgreSQL truncate table过慢无响应问题

·234 字·1 分鐘
Y Cheung
作者
Y Cheung
Blogger, Programer & Traveler.

在 postgreSQL 清空表 TRUNCATE TABLE table_name RESTART IDENTITY RESTRICT;的时候,突然发生等了很久都没反应的问题,忧郁之。

查了一下,一般遇到表操作过慢或者无响应之类的问题,可以像对操作系统一样kill掉process就好了。

在本例中, 首先使用以下语句列出相关PID

1SELECT *
2  FROM pg_locks l
3  JOIN pg_class t ON l.relation = t.oid AND t.relkind = 'r'
4 WHERE t.relname = 'table_name';

来查看其他别的sessions是不是占用了这张表,结果大概长下面这样

1  pid  | relname 
2-------+---------
3 31061 | table_name
4 31390 | table_name
5(2 rows)

然后把它们kill掉就好了,执行类似以下语句:

1SELECT pg_cancel_backend(31061);

如果还是kill不掉,再执行类似以下语句:

1SELECT pg_terminate_backend(31390);

相關文章

解決Windows Docker 客戶端使用 Mariadb 官方image啟動報錯

·526 字·2 分鐘
MariaDB Image使用的是當前最新的v10.3版本 1docker pull mariadb:latest docker-compose.yml文件內容: 1version: "3" 2services: 3 mariadb: 4 image: mariadb 5 container_name: mariadb 6 restart: always 7 volumes: 8 - ${DATA_DIR}:/var/lib/mysql 9 ports: 10 - "3306:3306" 11 environment: 12 MYSQL_ROOT_PASSWORD: password 13 MYSQL_DATABASE: public .env 文件內容:

MYSQL外鍵導致無法清空表

·132 字·1 分鐘
最近設計的數據庫表含有外鍵,結果在開發時truncate table的時候報錯了, 1SQL错误(1701):Cannot truncate a table referenced in a foreign key constraint (`rollcall2`.`oncall`, CONSTRAINT `FK__calls` FOREIGN KEY (`calls_id`) REFERENCES `rollcall2`.`calls` (`id`)) 解決辦法如下: 1SET FOREIGN_KEY_CHECKS = 0; 2TRUNCATE table; 3SET FOREIGN_KEY_CHECKS = 1; 當然也可以通過移除外鍵之類的辦法,但是感覺還是用上面幾行命令來解決比較方便。

Aliyun MySQL Aborting

·331 字·1 分鐘
放了wordpress的主機最近經常掛掉,提示無法連結數據庫,檢查log信息發現是因為內存不足,把InnoDB的buffer pool size改小後似乎好了一些,可今天還是出錯了,log信息如下:

Nodejs中使用Async進行流程控制

·321 字·1 分鐘
由於Node.js 是異步編程模型,在流程控制上很麻煩很複雜,幾個簡單的順序步驟就會寫出一堆回調嵌套,很頭疼。試了幾個庫都不能很好的解決這個問題,在同事Michael推薦了Async給我後順利的簡化了不少代碼!