# Postgresql Tuning
Tuple
http://liuyangming.tech/02-2019/PostgreSQL-Tuple.html
pg_type
https://ithelp.ithome.com.tw/articles/10218972
postgresql 數值型態研究
https://ithelp.ithome.com.tw/articles/10220426
postgresql 字元型態研究
https://ithelp.ithome.com.tw/articles/10219925
postgresql Enum
https://ithelp.ithome.com.tw/articles/10224450
postgresql UUID
https://ithelp.ithome.com.tw/articles/10225719
I/O
http://liuyangming.tech/12-2018/Tuning_Of_PG.html
https://severalnines.com/blog/tuning-io-operations-postgresql
work_mem Explain
https://www.enterprisedb.com/postgres-tutorials/how-tune-postgresql-memory
關於 表空間無法釋放的方法 (pg_reorg)
https://blog.csdn.net/gjc592/article/details/115713781?spm=1001.2101.3001.6650.3&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-3-115713781-blog-45244953.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-3-115713781-blog-45244953.pc_relevant_default&utm_relevant_index=6
1. DB會自動下 VACUUM
VACUUM analyse
歸0 n_dead_tup
```sql
CREATE EXTENSION pgstattuple;
SELECT * FROM pgstattuple('public.message_mapping_announcement');
SELECT * FROM pgstatindex('public.message_mapping_announcement_pk');
VACUUM full lottery_settled_finish;
-- 實作VACUUM analyse
-- 可以清出一點tuple空間free_space 但效果沒有很好 (SELECT * FROM pgstattuple('public.lottery_settled_finish');)
-- 歸0 n_dead_tup (select * from pg_stat_all_tables)
-- VACUUM full lottery_settled_finish;
-- 可以清出大多tuple空間free_space (SELECT * FROM pgstattuple('public.lottery_settled_finish');)
```
Explain prettier
https://explain.dalibo.com/
產收假資料
mockaroo.com
1. partition 探討 (1 小時研究)(2小時文章)
2. pg_stat_statements
3. trigger 影響速度(check, if else, trigger 2層以上)
4. tuple分配 (1 小時研究)(3小時文章)
5. db lock 各種情境!?
- ON CONFLICT DO NOTHING
- row lock
- table lock-
6. master slave
6-1. master slave衝突的復原
7. pgagent schedule
8. tree的分類效能
9. pg_activity
10. pg_cancel_backend、pg_terminate_backend、各種lock 砍process 的影響
11. 跨DB使用fdw
12. throughout put 分析
13. view 探討
14. Mview探討
15. connection pool探討(微服務、begin commit rollback)
16. pg_dump
17. explain, explain analyze的實戰
18. vacuum 的研究
19. 時間統一的作法(多時區的延伸)
20. function query在pg_stat_statements看的到嗎? 如何定義transaction
21. order,limit, offset query效能影響
22. 效能調整組合技(pg_user, pg_activity, pg_stat_statements, pg_lock ?)
23. foriegn key是好的嗎? 效能影響
24. in, not in, select (n*id), having, exists, case then, like, =any
25. 設計原則(參考)
26. WAL 文件的調整 效能影響
27. 效能調整的(https://www.readfog.com/a/1646533655193030656 )
28. aggregation 相關函數(效能)
29. DB 升級的研究(直接升級、備份+匯入)
30. JSON, JSONB 效能、text、
31. pg_repack(vacuum full 比較)
pg_upgrade
https://gist.github.com/johand/1224125b1b55629346855d9d21b99a24