Successfully reported this slideshow.
Your SlideShare is downloading. ×

老司機帶你上手 PostgreSQL 關聯式資料庫系統

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 122 Ad

老司機帶你上手 PostgreSQL 關聯式資料庫系統

Download to read offline

會提到下面內容

1. Migration 資料庫版本管理
2. Node.js 整合
3. PostGIS 實務應用
4. DB 儲存資料用
5. Blurhash 顯示

會提到下面內容

1. Migration 資料庫版本管理
2. Node.js 整合
3. PostGIS 實務應用
4. DB 儲存資料用
5. Blurhash 顯示

Advertisement
Advertisement

More Related Content

Slideshows for you (20)

Similar to 老司機帶你上手 PostgreSQL 關聯式資料庫系統 (20)

Advertisement

More from Mu Chun Wang (20)

Recently uploaded (20)

Advertisement

老司機帶你上手 PostgreSQL 關聯式資料庫系統

  1. 1. 老司機帶你上手 PostgreSQL 關聯式資料庫系統 Kewang, Funliday
  2. 2. Kewang ● 王慕羣 Kewang ● Java / JavaScript ● HBase / PostgreSQL / MongoDB / Elasticsearch ● Git / DevOps ● 熱愛開源 Linkedin Linkedin kewangtw kewangtw SlideShare SlideShare kewang kewang Gmail Gmail cpckewang cpckewang Facebook Facebook Kewang 的資訊進化論 Kewang 的資訊進化論 devopsday taipei devopsday taipei '17 '17 hadoopcon hadoopcon '14 '15 '14 '15 jcconf jcconf '16 '17 '18 '16 '17 '18 modernweb modernweb '18 '19 '20 '18 '19 '20 GitHub GitHub kewang kewang Funliday Funliday kewang kewang mopcon mopcon '14 '20 '14 '20 coscupcoscup '20'21'20'21 coscup coscup '20 '21 '20 '21
  3. 3. 4 本日大綱
  4. 4. 5 本日大綱
  5. 5. 6 本日大綱 1. Migration 資料庫版本管理
  6. 6. 7 本日大綱 1. Migration 資料庫版本管理 2. Node.js 整合
  7. 7. 8 本日大綱 1. Migration 資料庫版本管理 2. Node.js 整合 3. PostGIS 實務應用
  8. 8. 9 本日大綱 1. Migration 資料庫版本管理 2. Node.js 整合 3. PostGIS 實務應用 4. DB 儲存資料用
  9. 9. 10 本日大綱 1. Migration 資料庫版本管理 2. Node.js 整合 3. PostGIS 實務應用 4. DB 儲存資料用 5. Blurhash 顯示
  10. 10. 11 開始
  11. 11. 12 安裝 PostgreSQL - 主角
  12. 12. 13 安裝 PostgreSQL - 主角
  13. 13. 14 安裝 pgAdmin 4 - 管理介面
  14. 14. 15 安裝 pgAdmin 4 - 管理介面
  15. 15. 16 安裝 flyway - 資料庫版本管理
  16. 16. 17 安裝 flyway - 資料庫版本管理
  17. 17. 18 Migration 資料庫版本管理
  18. 18. 19 Flyway
  19. 19. 20 Flyway 1.資料庫版本管理
  20. 20. 21 Flyway 1.資料庫版本管理 2.慣例優於設定
  21. 21. 22 Flyway 1.資料庫版本管理 2.慣例優於設定 3.所有 DDL 都要版本管理
  22. 22. 23 Flyway 1.資料庫版本管理 2.慣例優於設定 3.所有 DDL 都要版本管理 4.支援各種 RDBMS
  23. 23. 24 conf/flyway.conf
  24. 24. 25 conf/flyway.conf
  25. 25. 26 flyway migrate
  26. 26. 27 flyway migrate
  27. 27. 28 flyway_schema_history
  28. 28. 29 flyway_schema_history
  29. 29. 30 DEMO 一下
  30. 30. 31 Node.js 整合
  31. 31. 32 node-postgres
  32. 32. 33 node-postgres 1. Node.js 的 PostgreSQL client
  33. 33. 34 node-postgres 1. Node.js 的 PostgreSQL client 2.支援 Promise (async/await)
  34. 34. 35 慣例寫法
  35. 35. 36 慣例寫法
  36. 36. 37 慣例寫法 所有機密資料記得從 .env 取得
  37. 37. 38 慣例寫法 所有機密資料記得從 .env 取得 application_name 方便識別
  38. 38. 39 慣例寫法 所有機密資料記得從 .env 取得 操作 DB 都寫成 object 管理 application_name 方便識別
  39. 39. 40 一次查詢多筆資料
  40. 40. 41 一次查詢多筆資料
  41. 41. 42 一次查詢多筆資料 使用 ANY 及 array 處理
  42. 42. 43 一次查詢多筆資料 使用 ANY 及 array 處理 使用 array 帶入參數
  43. 43. 44 取得 aggregate 內容
  44. 44. 45 取得 aggregate 內容
  45. 45. 46 取得 aggregate 內容 row 及 array_agg 組成 aggregation 內容
  46. 46. 47 取得 aggregate 內容 row 及 array_agg 組成 aggregation 內容 array_to_json 讓 node-postgres 直接轉換 JSON
  47. 47. 48 新增多筆資料
  48. 48. 49 新增多筆資料
  49. 49. 50 新增多筆資料 unnest 將 array 轉換為 row
  50. 50. 51 新增多筆資料 unnest 將 array 轉換為 row 使用 array 寫入多筆資料
  51. 51. 52 DEMO 一下
  52. 52. 53 PostGIS 實務應用
  53. 53. 54 PostGIS
  54. 54. 55 PostGIS 1.讓 PostgreSQL 變成地理空間資料庫
  55. 55. 56 PostGIS 1.讓 PostgreSQL 變成地理空間資料庫 2.可以使用各種 ST 函式操作空間資料
  56. 56. 57 找出特定座標最近的 10 個景點
  57. 57. 58 找出特定座標最近的 10 個景點
  58. 58. 59 找出特定座標最近的 10 個景點 KNN 算法
  59. 59. 60 找出特定座標的所在行政區
  60. 60. 61 找出特定座標的所在行政區
  61. 61. 62 找出特定座標的所在行政區 ST_Contains 算出包含特定座標的 geometry
  62. 62. 63 DEMO 一下
  63. 63. 64 DB 儲存資料用
  64. 64. 65 DB 儲存資料用
  65. 65. 66 DB 儲存資料用 1.使用者的行為,看文遠大於發文
  66. 66. 67 DB 儲存資料用 1.使用者的行為,看文遠大於發文 2.硬碟便宜,空間換取時間
  67. 67. 68 DB 儲存資料用 1.使用者的行為,看文遠大於發文 2.硬碟便宜,空間換取時間 3.單一動作多 table 操作,需加上 transaction
  68. 68. 69 當做 cache
  69. 69. 70 當做 cache client AP Redis DB
  70. 70. 71 當做 cache client AP Redis DB run
  71. 71. 72 當做 cache client AP Redis DB run get cache
  72. 72. 73 當做 cache client AP Redis DB run get cache return cache
  73. 73. 74 當做 cache client AP Redis DB run get cache return cache if hits, get cache
  74. 74. 75 當做 cache client AP Redis DB run get cache return cache if hits, get cache return cache
  75. 75. 76 當做 cache client AP Redis DB run get cache return cache if hits, get cache return cache if misses, store cache
  76. 76. 77 當做 cache client AP Redis DB run get cache return cache if hits, get cache return cache if misses, store cache store OK
  77. 77. 78 當做 cache client AP Redis DB run get cache return cache if hits, get cache return cache done if misses, store cache store OK
  78. 78. 79 不要重複計算 count
  79. 79. 80 不要重複計算 count 舊設計
  80. 80. 81 不要重複計算 count 舊設計 新設計
  81. 81. 82 不要重複計算 count - 語法
  82. 82. 83 不要重複計算 count - 語法
  83. 83. 84 Blurhash 顯示
  84. 84. 85 Blurhash
  85. 85. 86 Blurhash ● 別讓你的 designer 笑你笨
  86. 86. 87 Blurhash ● 別讓你的 designer 笑你笨 ● 用有意義的色塊顯示在畫面上
  87. 87. 88 Blurhash ● 別讓你的 designer 笑你笨 ● 用有意義的色塊顯示在畫面上 ● 別讓你的 DBA 笑你笨
  88. 88. 89 Blurhash ● 別讓你的 designer 笑你笨 ● 用有意義的色塊顯示在畫面上 ● 別讓你的 DBA 笑你笨 ● 用極短 (20 bytes) 的字串存入 DB
  89. 89. 90 Blurhash ● 別讓你的 designer 笑你笨 ● 用有意義的色塊顯示在畫面上 ● 別讓你的 DBA 笑你笨 ● 用極短 (20 bytes) 的字串存入 DB
  90. 90. 91 Blurhash encode diagram
  91. 91. 92 Blurhash encode diagram client CDN S3 MQ origin DB
  92. 92. 93 Blurhash encode diagram client CDN S3 1. get image from CDN MQ origin DB
  93. 93. 94 Blurhash encode diagram client CDN S3 1. get image from CDN MQ origin 2. get image from origin DB
  94. 94. 95 Blurhash encode diagram client CDN S3 1. get image from CDN MQ origin 2. get image from origin 3 . g e t i m a g e f r o m S 3 DB
  95. 95. 96 Blurhash encode diagram client CDN S3 1. get image from CDN MQ origin 2. get image from origin 4.push im age id to M Q 3 . g e t i m a g e f r o m S 3 DB
  96. 96. 97 Blurhash encode diagram client CDN S3 1. get image from CDN MQ 5. get image from S3 origin 2. get image from origin 4.push im age id to M Q 3 . g e t i m a g e f r o m S 3 DB
  97. 97. 98 Blurhash encode diagram client CDN S3 1. get image from CDN MQ 5. get image from S3 6. store blurhash to DB origin 2. get image from origin 4.push im age id to M Q 3 . g e t i m a g e f r o m S 3 DB
  98. 98. 99 Blurhash encode package
  99. 99. 100 Blurhash encode package
  100. 100. 101 Blurhash encode package High performance Node.js image processing
  101. 101. 102 Blurhash encode package High performance Node.js image processing A very compact representation of a placeholder for an image
  102. 102. 103 Blurhash encode source code
  103. 103. 104 Blurhash encode source code
  104. 104. 105 Blurhash encode source code 轉成 jpeg 降低檔案大小
  105. 105. 106 Blurhash encode source code 轉成 jpeg 降低檔案大小 縮小尺寸降低檔案大小
  106. 106. 107 Blurhash encode source code 轉成 jpeg 降低檔案大小 縮小尺寸降低檔案大小 加入透明度確保 encode 不會失敗
  107. 107. 108 Blurhash encode source code 轉成 jpeg 降低檔案大小 縮小尺寸降低檔案大小 加入透明度確保 encode 不會失敗 轉成 bitmap
  108. 108. 109 Blurhash encode source code 轉成 jpeg 降低檔案大小 縮小尺寸降低檔案大小 加入透明度確保 encode 不會失敗 轉成 bitmap Blurhash encode
  109. 109. 110 Blurhash encode source code 轉成 jpeg 降低檔案大小 縮小尺寸降低檔案大小 加入透明度確保 encode 不會失敗 轉成 bitmap Blurhash encode 將 blurhash 存入資料庫
  110. 110. 111 Blurhash decode diagram
  111. 111. 112 Blurhash decode diagram client server CDN DB
  112. 112. 113 Blurhash decode diagram client server 1. send API request to server CDN DB
  113. 113. 114 Blurhash decode diagram client server 1. send API request to server CDN DB 2. get blurhash & data from DB
  114. 114. 115 Blurhash decode diagram client server 1. send API request to server CDN DB 2. get blurhash & data from DB 3. get image from CDN
  115. 115. 116 DEMO 一下
  116. 116. 117 講完了
  117. 117. 118 想看更多
  118. 118. 119 想看更多 ● https://www.facebook.com/kewang.information ● https://techblog.funliday.com
  119. 119. 120 工商時間
  120. 120. 121 工商時間 https://hahow.in/cr/kewang-backend https://bit.ly/3AueOxt
  121. 121. 122

×