資料庫設計 - 有效的使用系統資料 - 第九章 - 補充

單元 1 MySQL 資料庫維護

Workbench 還有一些方便的資料統計資訊可以看,像是哪個 SQL statements 花費最多時間之類的,滿有趣的!

Dashboard

  • Network Status
    • 網路狀態、流量
  • MySQL Status
    • Select 每秒有幾筆,有系統連線就會有資料產生
    • insert update delete 每秒有幾筆
  • InnoDB Status
    • 儲存引擎
    • 連接十題資料的 input output 狀態

Performance Reports

Memory

I/O

資料庫儲存提取實體檔案時的 IO 狀況

High Cost SQL Statements

花費最多時間的前五個 Statements

Users & Privileges

這邊可以新增不同 User 並且做權限設定。
例如有不同角色,User 管理
  • 限制帳號 Query 使用額度
    • 資料庫就限制,可能外部連線進來的系統會發生錯誤,超過額度會無法繼續服務前面使用者
    • Max connections: 每小時最多可連線的 Connection 數量
    • Concurrent connections: 瞬間可連線數量

Administrative Role

DBA 可以擁有所有權限, User Admin 就只能 Create User 

單元 2 NoSQL 資料庫

簡介

  • Not Only SQL 非關聯式資料庫
  • 解決讀取海量資料的資料庫技術(FaceBook)
  • Key-Value 資料型態(ex: id = 123)
  • 資料量大時讀取快速
  • 增加/減少資料效率高
  • 擴充方便

用 API 的方式 Query 資料

資料庫軟體

  • MongoDB
  • Hadoop
  • Redis

雲端服務

  • Google - Google Cloud BigTable
  • Amazone - DynamoDB

Amazone: AWS

Service > DataBase > DynamoDB

單元 4 SQL 語法判斷資料的方式

  • 判斷的語法
  • 深入了解 procedures 的功能

Case

幫助我們對欄位做多種情況的區分
  • switch
  • if else
用法:
select Case sex
  WHEN 1 THEN "男生"
  WHEN 0 THEN "女生"
  END
from user;
select CASE
  WHEN age < 18 THEN "未成年"
  WHEN age >= 18 THEN "已成年"
  END
from user;時
實際應用
要把訂單的產品打包裝箱,規則如下:
  1. 箱子大小:
    • S: <10
    • M: >= 10 and < 20
    • L: >= 20
  2. 使用 Table: Orders, OrderDetails
  3. 建立的欄位資訊: OrderID, OrderDate, ShipperID, Quantity, Size
SELECT o.OrderID, o.OrderDate, o.ShipperID, od.Quantity,
  CASE
    WHEN od.Quantity < 10 THEN "S"
    WHEN od.Quantity >= 10 and od.Quantity < 20 THEN "M"
    WHEN od.Quantity >= 20 THEN "L"
    ELSE "Null"
  END as Size
FROM orderdetails od, orders o
WHERE od.OrderID = o.orderID;

Comments

Popular posts from this blog

《 Imgproxy 使用分析一:圖片下載速度優化分析:Akamai CDN vs Imgproxy 效能比較》

《 Akamai + S3 與 CloudFront + Imgproxy + S3 使用分析二:壓縮圖片設計流程:檔案大小 vs 載入時間的權衡》

程式語言初學者 Docker 入門第二章 —— 安裝與驗證 (Mac)