owned this note changed 7 years ago
Linked with GitHub

以新世代MySQL 8.0支援行動應用

tags: 2018, R2
位置: R2
講者:杜修文



SQL

  • Oracle是全世界極大的DB的供應商
  • MySQL是其中的一個分支

Source LAMP Stack

  • Linux
  • Appache
  • MySQL
  • PHP, Perl, Python

MySQL發展

  • 支援CPU數增加

SQL特性

  • 關聯式資料庫很重要
  • 但某些場合不太好用
  • 彈性不佳

NoSQL特性

  • MongoDB
  • 強調彈性
  • 無法保證連續性

最近的發展

  • 開啟對行動運算的支援

行動應用需要什麼資料

  • 位置資料
    • GIS
  • 有彈性的資料
    • NoSQL
  • 持續可用的資料
    • 高可用資料儲存

5.7 版起整合 Boost.Geometry

  • 取代或改進客製化程式碼
    • 用於 geometry representations
  • 符合OGC
    • 同時改進性能
  • Boost.Geometry包含
    • 業界及行業專家
    • 活躍也扎實的社群
  • 我們也是Boost.Geometry的貢獻者
    • Two full-time developers contributing upstream

InnoDB的Spatial indexes

  • R - tree based
    • 完整支援交易
    • Predicate locking以防止幻讀
    • 記錄中含最小邊框方塊
      • 小且緊湊
    • 目前只支援2D資料
      • 將來目標式加上對3D的支援
    • 支援歷史的地理索引DDL語法

額外的功能

  • GeoHash
    • 在生成的哈希值上加 B-tree 索引
    • 快速查找完全相符的資料
    • 在趨近搜尋時不是很精準
  • GeoJSON
  • 更多功能
    • ST_IsValid(), ST_Simplify(),ST_Buffer()
    • ST_Distance_Sphere()
  • 支援多種Spatial Reference

建立一套應用系統 - 售票系統

Case Study:我們的售票系統

  • 5個Table
    • venues
    • seats
    • events
    • tickets
    • orders

我們的定位來自哪裡?

  • 許多定位以行動設備下單
  • 不僅是一個題目
    • 要減少再畫面間的點擊
    • 以用戶的位置為內容

今天以後的活動和指定位置的距離(考量到地球是圓的)

SELECT ?
ROUND ? AS
FROM ?
INNER JOIN ? ON ?
WHERE ?
ORDER BY ?

行動也代表 emoji
Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

  • 以Emoji字元輸入
  • MySQL 8.0 預設為utf8mb4
  • 支援最新的Unicode 9.0
  • 新的規則基於DUCET(Default Unicode Collation Element Table)

MySQL 8.0 vs MySQL 5.7

簡單來說3倍效能增進

MySQL Interfaces

存在資料庫的JSON

mysql> SELECT id,doc FROM seats WHERE id=28100\G

JSON Functions

  • 有一大推可以用
  • Ref

其實不需要這麼複雜的MySQL

X DevAPI Connector(s)

  • 簡單來說就是不用去做上面那些細項
  • 用以開發CRUD為基礎
  • 來操作JSON
    • CollectionAdd
    • CollectionRemove

MySQL Shell 有什麼新功能

  • 可客製化提示
    • 包括內容和對話訊息
  • 支援客製化字型和顏色
  • 自動完成 / 內容輔助
  • 支援全 Unicode

MySQL Cluster

  • InnoDB cluster

MySQL 企業版

  • 先進功能
    • 擴充性
Select a repo