01. 命令列工具登入方式
psql -U postgres -h localhost -d database_name
02. 安全性設定檔
pg_hba.comf
03. SQL count(*) 過慢
貌似因為 Lock 機制,PG 需要從頭搜尋一遍以得到精準的數字,如果只是想要知道大概,可以使用下面指令得到近似值。
SELECT reltuples::bigint AS estimate FROM pg_class WHERE relname='table_name';
04. Linux 下得知目前資料庫硬碟使用空間
sudo du -sh /sda3/postgresql/
05. 使用指令得到某 table 使用空間
SELECT pg_total_relation_size('table_name');
06. 使用指令得到某 database 使用空間
此數字會比實際硬碟空間還少,因為實際空間還包括 PG 系統本身,以我的測試資料庫來看,大概還要乘上 2 倍。
SELECT pg_database_size('database_name');
07. 一些建立 table SQL 語法
CREATE TABLE users (
user_id TEXT NOT NULL PRIMARY KEY,
name TEXT NOT NULL UNIQUE,
pwd TEXT NOT NULL,
privilege TEXT NOT NULL,
email TEXT NOT NULL UNIQUE
);
CREATE TABLE devices (
device_id TEXT NOT NULL PRIMARY KEY,
ip TEXT NOT NULL,
port INTEGER NOT NULL,
data JSON NOT NULL
);
CREATE UNIQUE INDEX idx_devices_ip_port
ON devices(ip, port);
CREATE TABLE groups (
user_id TEXT NOT NULL,
group_id TEXT NOT NULL PRIMARY KEY,
group_name TEXT NOT NULL,
CONSTRAINT fk_users
FOREIGN KEY(user_id)
REFERENCES users(user_id)
ON DELETE CASCADE
);
沒有留言:
張貼留言