SlideShare ist ein Scribd-Unternehmen logo
1 von 48
Downloaden Sie, um offline zu lesen
⼼心得分享
Modern Web 2016
技術在我們⼿手上,票就在我們⾝身上
2016年年 10 ⽉月 8 ⽇日 JAAD - Win
恰如其分的 MySQL
設計技巧
Modern Web 2016 Ant_ModernWeb-恰如其分的MySQL設計技巧_修.pdf
–Donald Knuth-
過早最佳化是萬惡惡的根源
Modern Web 2016 3
架構是演進的,預想有益⾝身⼼心健康
Modern Web 2016 4
新平台上線
Modern Web 2016 5
上線⼀一週後
Modern Web 2016 6
Minimum Viable Product
MVP 若若沒有控制好,技術債迅速成長....
先前程式常不能⽤用
遺舊程式不忍棄之
結構變動反覆無常
Modern Web 2016 7
只做 MVP ,最終只會得到⼀一個 壞產品
Modern Web 2016 8
預想 開發
Modern Web 2016
Research Development
9
無視⼈人員、流程只講技術,是耍⽩白痴
架構會影響公司⽂文化、商業擴展;思維更更要超越程式碼層次
➊ 架構先決
Modern Web 2016 10
無視場景只講架構,是耍流氓
若若無法舉出架構的缺陷,代表你還無法掌握
盲⽬目套⽤用別⼈人的架構,並不會讓你變得跟他⼀一樣好
➋ 沒有完美的架構,只有最適的架構
Modern Web 2016 11
無視未來來只求現有,是耍⾃自閉
兵⾺馬未動,糧草先⾏行行,預想下⼀一步,下下⼀一步,甚⾄至下下下⼀一步 ...
➌ 架構是演進的,預想但不過早調優
Modern Web 2016 12
Modern Web 2016 13
Modern Web 2016
Monolithic Microservices
14
Elastic Business
Modern Web 2016
當業務需求變更更程式設計時
預想但不過早調優
Modern Web 2016
⼯工程師不該把每次新需求都認為獨立需求
(多想兩兩分鐘,團隊可以不必⾃自虐)
16
以狀狀態為例例
Modern Web 2016 17
Modern Web 2016 18
Modern Web 2016
新的業務需求需要儲存『鎖定』狀狀態
你覺得該怎麼做?
19
Modern Web 2016 20
Modern Web 2016
其實若若狀狀態是互斥,則可以合併
{0: deleted, 1: enabled, 2: locaked}
21
以標籤雲為例例
Modern Web 2016 22
Modern Web 2016
SELECT * FROM {Table}
WHERE tag1 = `admin`
23
Modern Web 2016
SELECT * FROM {Table}
WHERE tag1 = `admin`
新的業務需求需要新增
『不⼀一樣的標籤』
24
Modern Web 2016
SELECT * FROM {Table}
WHERE (tag1 = `admin` OR tag2 = `admin` OR tag3 = `admin`)
AND (tag1 = `reporter` OR tag2 = `reporter` OR tag3 = `reporter`)
SELECT * FROM {Table}
WHERE `admin` IN (tag1, tag2, tag3)
AND `reporter` IN (tag1, tag2, tag3)
新增標籤
alter table !!
25
Modern Web 2016
SELECT * FROM {Table}
INNER JOIN `Tag` AS t1 USING (id)
INNER JOIN `Tag` AS t2 USING (id)
WHERE t1.tag = `admin
AND t2.tag = `reporter`
新⽅方法1
tag
26
Modern Web 2016
新⽅方法2
或是 M : N
27
哪些需求會變成變數才是⼯工程師在意的
當需求出現的時候要預想變數有可能是什什麼
Modern Web 2016 28
Scale Up
- Application
Modern Web 2016
➊ N+1 queries / ORM
➋ Bad SQL
➌ Bad Schema Design
➍ Big SQL
➎ Big Transaction
➏ Big Batch
效能通常有 99% 的問題在於 Application
Modern Web 2016 30
➊ N+1 queries / ORM
➋ Bad SQL
➌ Bad Schema Design
➍ Big SQL
➎ Big Transaction
➏ Big Batch
效能通常有 99% 的問題在於 Application
Modern Web 2016 31
➀ 如果更更新頻繁且長度不⼀一, CHAR 通常比較快。
➁ 在 MySQL 5.7.7 之後, CHAR 通常比 VARCHAR 快。
Modern Web 2016
(MySQL) CHAR vs. VARCHAR
32
➀ Primary Index 對 MySQL 很重要,循序式比亂序式快。
➁ Index 愈多不⼀一定愈好。
➂ Composite Index 需善⽤用。
Modern Web 2016
Index
33
Modern Web 2016
Scale Out
- Replication
- Cluster
Modern Web 2016
Replication
35
Modern Web 2016
Replication
Read Write
36
Modern Web 2016
Clustering
每台都可以 Read/Write
37
Modern Web 2016
Clustering
缺點:會發⽣生 Deadlock
38
Modern Web 2016
Clustering
解法:加入 Load Balancer 當作中介層
39
Percona XtraDB Cluster: Multi-node writing and
Unexpected deadlocks
2012-08-17
https://www.percona.com/blog/2012/08/17/percona-xtradb-cluster-multi-node-writing-and-unexpected-
deadlocks/
Avoiding Deadlocks in Galera - Set up HAProxy for
single-node writes and multi-node reads
2013-09-17
http://www.severalnines.com/blog/avoiding-deadlocks-galera-set-haproxy-single-node-writes-and-multi-
node-reads
Optimizing Percona XtraDB Cluster for write hotspots
2015-06-03
https://www.percona.com/blog/2015/06/03/optimizing-percona-xtradb-cluster-write-hotspots/
Modern Web 2016 40
Clustering Database Federation
Table Partitioning Table Sharding
Modern Web 2016 41
Modern Web 2016
How to do in PIXNET
Modern Web 2016
➊ 架構先決
➋ 沒有完美的架構,只有最適的架構
➌ 架構是演進的,預想但不過早調優
43
Modern Web 2016
Thank you.
2016 ModernWeb 分享 - 恰如其分 MySQL 程式設計 (修)
2016 ModernWeb 分享 - 恰如其分 MySQL 程式設計 (修)
2016 ModernWeb 分享 - 恰如其分 MySQL 程式設計 (修)
2016 ModernWeb 分享 - 恰如其分 MySQL 程式設計 (修)

Weitere ähnliche Inhalte

Andere mochten auch

容器驅動開發 - .NET Conf 2017 @ 台中
容器驅動開發 - .NET Conf 2017 @ 台中容器驅動開發 - .NET Conf 2017 @ 台中
容器驅動開發 - .NET Conf 2017 @ 台中Andrew Wu
 
Docker 進階實務班
Docker 進階實務班Docker 進階實務班
Docker 進階實務班Philip Zheng
 
大型 Web Application 轉移到 微服務的經驗分享
大型 Web Application 轉移到微服務的經驗分享大型 Web Application 轉移到微服務的經驗分享
大型 Web Application 轉移到 微服務的經驗分享Andrew Wu
 
API Token 入門
API Token 入門API Token 入門
API Token 入門Andrew Wu
 
與設計架構當朋友
與設計架構當朋友 與設計架構當朋友
與設計架構當朋友 Win Yu
 
Continuous Delivery - 敏捷開發的最後一哩路
Continuous Delivery - 敏捷開發的最後一哩路Continuous Delivery - 敏捷開發的最後一哩路
Continuous Delivery - 敏捷開發的最後一哩路Miles Chou
 
PHP 良好實踐 (Best Practice)
PHP 良好實踐 (Best Practice)PHP 良好實踐 (Best Practice)
PHP 良好實踐 (Best Practice)Win Yu
 
無瑕的程式碼 Clean Code 心得分享
無瑕的程式碼 Clean Code 心得分享無瑕的程式碼 Clean Code 心得分享
無瑕的程式碼 Clean Code 心得分享Win Yu
 
[系列活動] 一天搞懂對話機器人
[系列活動] 一天搞懂對話機器人[系列活動] 一天搞懂對話機器人
[系列活動] 一天搞懂對話機器人台灣資料科學年會
 

Andere mochten auch (9)

容器驅動開發 - .NET Conf 2017 @ 台中
容器驅動開發 - .NET Conf 2017 @ 台中容器驅動開發 - .NET Conf 2017 @ 台中
容器驅動開發 - .NET Conf 2017 @ 台中
 
Docker 進階實務班
Docker 進階實務班Docker 進階實務班
Docker 進階實務班
 
大型 Web Application 轉移到 微服務的經驗分享
大型 Web Application 轉移到微服務的經驗分享大型 Web Application 轉移到微服務的經驗分享
大型 Web Application 轉移到 微服務的經驗分享
 
API Token 入門
API Token 入門API Token 入門
API Token 入門
 
與設計架構當朋友
與設計架構當朋友 與設計架構當朋友
與設計架構當朋友
 
Continuous Delivery - 敏捷開發的最後一哩路
Continuous Delivery - 敏捷開發的最後一哩路Continuous Delivery - 敏捷開發的最後一哩路
Continuous Delivery - 敏捷開發的最後一哩路
 
PHP 良好實踐 (Best Practice)
PHP 良好實踐 (Best Practice)PHP 良好實踐 (Best Practice)
PHP 良好實踐 (Best Practice)
 
無瑕的程式碼 Clean Code 心得分享
無瑕的程式碼 Clean Code 心得分享無瑕的程式碼 Clean Code 心得分享
無瑕的程式碼 Clean Code 心得分享
 
[系列活動] 一天搞懂對話機器人
[系列活動] 一天搞懂對話機器人[系列活動] 一天搞懂對話機器人
[系列活動] 一天搞懂對話機器人
 

Ähnlich wie 2016 ModernWeb 分享 - 恰如其分 MySQL 程式設計 (修)

透過網路連線 MySQL 進行查詢會比較快嗎?
透過網路連線 MySQL 進行查詢會比較快嗎?透過網路連線 MySQL 進行查詢會比較快嗎?
透過網路連線 MySQL 進行查詢會比較快嗎?Cheyin L
 
Big data, big deal ms it168文库
Big data, big deal ms it168文库Big data, big deal ms it168文库
Big data, big deal ms it168文库Accenture
 
Big data, big deal ms it168文库
Big data, big deal ms it168文库Big data, big deal ms it168文库
Big data, big deal ms it168文库Accenture
 
Chinese Chemical Presenatation(中译文)(p10有批注)
Chinese Chemical Presenatation(中译文)(p10有批注)Chinese Chemical Presenatation(中译文)(p10有批注)
Chinese Chemical Presenatation(中译文)(p10有批注)Lora Cecere
 
10th.霍泰稳.info q中文站2011年技术趋势展望
10th.霍泰稳.info q中文站2011年技术趋势展望10th.霍泰稳.info q中文站2011年技术趋势展望
10th.霍泰稳.info q中文站2011年技术趋势展望drewz lin
 
数据平台建设进展汇报以及对产品人员工作的认识 王小红20140227
数据平台建设进展汇报以及对产品人员工作的认识 王小红20140227数据平台建设进展汇报以及对产品人员工作的认识 王小红20140227
数据平台建设进展汇报以及对产品人员工作的认识 王小红20140227Bluer Wang(王小红)
 
Hadoop 生態系十年回顧與未來展望
Hadoop 生態系十年回顧與未來展望Hadoop 生態系十年回顧與未來展望
Hadoop 生態系十年回顧與未來展望Jazz Yao-Tsung Wang
 
網路行銷教案-壹、基本概念篇
網路行銷教案-壹、基本概念篇網路行銷教案-壹、基本概念篇
網路行銷教案-壹、基本概念篇p_yang
 
Taobao数据库这5年
Taobao数据库这5年Taobao数据库这5年
Taobao数据库这5年yp_fangdong
 
海量計算的學習歷程分析與雲端資料庫管理系統Sqlmr appliance一體機開發計畫書 20140101
海量計算的學習歷程分析與雲端資料庫管理系統Sqlmr appliance一體機開發計畫書 20140101海量計算的學習歷程分析與雲端資料庫管理系統Sqlmr appliance一體機開發計畫書 20140101
海量計算的學習歷程分析與雲端資料庫管理系統Sqlmr appliance一體機開發計畫書 20140101Jackie Liu
 
[China merge world tour] Coverity Development Testing
[China   merge world tour] Coverity Development Testing[China   merge world tour] Coverity Development Testing
[China merge world tour] Coverity Development TestingPerforce
 
Leverage Modern Enterprise Architecture To Speed Up Work Resumption
Leverage Modern Enterprise Architecture To Speed Up Work ResumptionLeverage Modern Enterprise Architecture To Speed Up Work Resumption
Leverage Modern Enterprise Architecture To Speed Up Work ResumptionDenodo
 
20160429 eSignal 體驗會
20160429 eSignal 體驗會20160429 eSignal 體驗會
20160429 eSignal 體驗會Datanet KC
 
Patterns of Expertise in Cloud 云计算中的专家模式 QCon 2014 北京
Patterns of Expertise in Cloud 云计算中的专家模式 QCon 2014 北京Patterns of Expertise in Cloud 云计算中的专家模式 QCon 2014 北京
Patterns of Expertise in Cloud 云计算中的专家模式 QCon 2014 北京Li Yi
 
淺談台灣巨量資料產業供應鏈串聯現況
淺談台灣巨量資料產業供應鏈串聯現況淺談台灣巨量資料產業供應鏈串聯現況
淺談台灣巨量資料產業供應鏈串聯現況Jazz Yao-Tsung Wang
 
別忽略就在您身旁的數據 掌握商業價值 你用過Google Analytics這個分析工具嗎 網站分析成效優化分享版
別忽略就在您身旁的數據 掌握商業價值 你用過Google Analytics這個分析工具嗎 網站分析成效優化分享版別忽略就在您身旁的數據 掌握商業價值 你用過Google Analytics這個分析工具嗎 網站分析成效優化分享版
別忽略就在您身旁的數據 掌握商業價值 你用過Google Analytics這個分析工具嗎 網站分析成效優化分享版MMdc 關鍵數位行銷 Bryan
 
Dreaming Infrastructure
Dreaming InfrastructureDreaming Infrastructure
Dreaming Infrastructurekyhpudding
 

Ähnlich wie 2016 ModernWeb 分享 - 恰如其分 MySQL 程式設計 (修) (20)

透過網路連線 MySQL 進行查詢會比較快嗎?
透過網路連線 MySQL 進行查詢會比較快嗎?透過網路連線 MySQL 進行查詢會比較快嗎?
透過網路連線 MySQL 進行查詢會比較快嗎?
 
Big data, big deal ms it168文库
Big data, big deal ms it168文库Big data, big deal ms it168文库
Big data, big deal ms it168文库
 
Big data, big deal ms it168文库
Big data, big deal ms it168文库Big data, big deal ms it168文库
Big data, big deal ms it168文库
 
Chinese Chemical Presenatation(中译文)(p10有批注)
Chinese Chemical Presenatation(中译文)(p10有批注)Chinese Chemical Presenatation(中译文)(p10有批注)
Chinese Chemical Presenatation(中译文)(p10有批注)
 
10th.霍泰稳.info q中文站2011年技术趋势展望
10th.霍泰稳.info q中文站2011年技术趋势展望10th.霍泰稳.info q中文站2011年技术趋势展望
10th.霍泰稳.info q中文站2011年技术趋势展望
 
数据平台建设进展汇报以及对产品人员工作的认识 王小红20140227
数据平台建设进展汇报以及对产品人员工作的认识 王小红20140227数据平台建设进展汇报以及对产品人员工作的认识 王小红20140227
数据平台建设进展汇报以及对产品人员工作的认识 王小红20140227
 
Hadoop 生態系十年回顧與未來展望
Hadoop 生態系十年回顧與未來展望Hadoop 生態系十年回顧與未來展望
Hadoop 生態系十年回顧與未來展望
 
網路行銷教案-壹、基本概念篇
網路行銷教案-壹、基本概念篇網路行銷教案-壹、基本概念篇
網路行銷教案-壹、基本概念篇
 
ION Hangzhou - The Prospect of the Alibaba Next Generation Internet
ION Hangzhou - The Prospect of the Alibaba Next Generation InternetION Hangzhou - The Prospect of the Alibaba Next Generation Internet
ION Hangzhou - The Prospect of the Alibaba Next Generation Internet
 
Taobao数据库这5年
Taobao数据库这5年Taobao数据库这5年
Taobao数据库这5年
 
海量計算的學習歷程分析與雲端資料庫管理系統Sqlmr appliance一體機開發計畫書 20140101
海量計算的學習歷程分析與雲端資料庫管理系統Sqlmr appliance一體機開發計畫書 20140101海量計算的學習歷程分析與雲端資料庫管理系統Sqlmr appliance一體機開發計畫書 20140101
海量計算的學習歷程分析與雲端資料庫管理系統Sqlmr appliance一體機開發計畫書 20140101
 
[China merge world tour] Coverity Development Testing
[China   merge world tour] Coverity Development Testing[China   merge world tour] Coverity Development Testing
[China merge world tour] Coverity Development Testing
 
Leverage Modern Enterprise Architecture To Speed Up Work Resumption
Leverage Modern Enterprise Architecture To Speed Up Work ResumptionLeverage Modern Enterprise Architecture To Speed Up Work Resumption
Leverage Modern Enterprise Architecture To Speed Up Work Resumption
 
20160429 eSignal 體驗會
20160429 eSignal 體驗會20160429 eSignal 體驗會
20160429 eSignal 體驗會
 
Patterns of Expertise in Cloud 云计算中的专家模式 QCon 2014 北京
Patterns of Expertise in Cloud 云计算中的专家模式 QCon 2014 北京Patterns of Expertise in Cloud 云计算中的专家模式 QCon 2014 北京
Patterns of Expertise in Cloud 云计算中的专家模式 QCon 2014 北京
 
淺談台灣巨量資料產業供應鏈串聯現況
淺談台灣巨量資料產業供應鏈串聯現況淺談台灣巨量資料產業供應鏈串聯現況
淺談台灣巨量資料產業供應鏈串聯現況
 
別忽略就在您身旁的數據 掌握商業價值 你用過Google Analytics這個分析工具嗎 網站分析成效優化分享版
別忽略就在您身旁的數據 掌握商業價值 你用過Google Analytics這個分析工具嗎 網站分析成效優化分享版別忽略就在您身旁的數據 掌握商業價值 你用過Google Analytics這個分析工具嗎 網站分析成效優化分享版
別忽略就在您身旁的數據 掌握商業價值 你用過Google Analytics這個分析工具嗎 網站分析成效優化分享版
 
20150206 aic machine learning
20150206 aic machine learning20150206 aic machine learning
20150206 aic machine learning
 
Dreaming Infrastructure
Dreaming InfrastructureDreaming Infrastructure
Dreaming Infrastructure
 
Datablau Overall.pdf
Datablau Overall.pdfDatablau Overall.pdf
Datablau Overall.pdf
 

Mehr von Win Yu

運用 Cloud Pub/Sub 實作 PIXNET 跨產品動態整合 #modernWeb2018
運用 Cloud Pub/Sub 實作 PIXNET 跨產品動態整合 #modernWeb2018運用 Cloud Pub/Sub 實作 PIXNET 跨產品動態整合 #modernWeb2018
運用 Cloud Pub/Sub 實作 PIXNET 跨產品動態整合 #modernWeb2018Win Yu
 
AMP Roadshow Taipei
AMP Roadshow TaipeiAMP Roadshow Taipei
AMP Roadshow TaipeiWin Yu
 
Easy to recap AWS reinvent 2017
Easy to recap AWS reinvent 2017Easy to recap AWS reinvent 2017
Easy to recap AWS reinvent 2017Win Yu
 
Video Face Recognition , Pattern Recognition Final Report
Video Face Recognition , Pattern Recognition Final ReportVideo Face Recognition , Pattern Recognition Final Report
Video Face Recognition , Pattern Recognition Final ReportWin Yu
 
Pattern Recognition midterm Proposal
Pattern Recognition midterm ProposalPattern Recognition midterm Proposal
Pattern Recognition midterm ProposalWin Yu
 
A rank based ensemble classifier for image classification
A rank based ensemble classifier for image classificationA rank based ensemble classifier for image classification
A rank based ensemble classifier for image classificationWin Yu
 
Hybrid clustering based 3 d face modeling upon non-perfect orthogonality
Hybrid clustering based 3 d face modeling upon non-perfect orthogonalityHybrid clustering based 3 d face modeling upon non-perfect orthogonality
Hybrid clustering based 3 d face modeling upon non-perfect orthogonalityWin Yu
 
MSR-Bing Image Retrieval Challenge ,written by Win
MSR-Bing Image Retrieval Challenge ,written by WinMSR-Bing Image Retrieval Challenge ,written by Win
MSR-Bing Image Retrieval Challenge ,written by WinWin Yu
 
Tpr star tree
Tpr star treeTpr star tree
Tpr star treeWin Yu
 
A completed modeling of local binary pattern operator
A completed modeling of local binary pattern operatorA completed modeling of local binary pattern operator
A completed modeling of local binary pattern operatorWin Yu
 
Recognition of Partially Occluded Face Using Gradientface and Local Binary Pa...
Recognition of Partially Occluded Face Using Gradientface and Local Binary Pa...Recognition of Partially Occluded Face Using Gradientface and Local Binary Pa...
Recognition of Partially Occluded Face Using Gradientface and Local Binary Pa...Win Yu
 
Bundling Features for Large Scale Partial-Duplicate Web Image Search
Bundling Features for Large Scale Partial-Duplicate Web Image SearchBundling Features for Large Scale Partial-Duplicate Web Image Search
Bundling Features for Large Scale Partial-Duplicate Web Image SearchWin Yu
 

Mehr von Win Yu (12)

運用 Cloud Pub/Sub 實作 PIXNET 跨產品動態整合 #modernWeb2018
運用 Cloud Pub/Sub 實作 PIXNET 跨產品動態整合 #modernWeb2018運用 Cloud Pub/Sub 實作 PIXNET 跨產品動態整合 #modernWeb2018
運用 Cloud Pub/Sub 實作 PIXNET 跨產品動態整合 #modernWeb2018
 
AMP Roadshow Taipei
AMP Roadshow TaipeiAMP Roadshow Taipei
AMP Roadshow Taipei
 
Easy to recap AWS reinvent 2017
Easy to recap AWS reinvent 2017Easy to recap AWS reinvent 2017
Easy to recap AWS reinvent 2017
 
Video Face Recognition , Pattern Recognition Final Report
Video Face Recognition , Pattern Recognition Final ReportVideo Face Recognition , Pattern Recognition Final Report
Video Face Recognition , Pattern Recognition Final Report
 
Pattern Recognition midterm Proposal
Pattern Recognition midterm ProposalPattern Recognition midterm Proposal
Pattern Recognition midterm Proposal
 
A rank based ensemble classifier for image classification
A rank based ensemble classifier for image classificationA rank based ensemble classifier for image classification
A rank based ensemble classifier for image classification
 
Hybrid clustering based 3 d face modeling upon non-perfect orthogonality
Hybrid clustering based 3 d face modeling upon non-perfect orthogonalityHybrid clustering based 3 d face modeling upon non-perfect orthogonality
Hybrid clustering based 3 d face modeling upon non-perfect orthogonality
 
MSR-Bing Image Retrieval Challenge ,written by Win
MSR-Bing Image Retrieval Challenge ,written by WinMSR-Bing Image Retrieval Challenge ,written by Win
MSR-Bing Image Retrieval Challenge ,written by Win
 
Tpr star tree
Tpr star treeTpr star tree
Tpr star tree
 
A completed modeling of local binary pattern operator
A completed modeling of local binary pattern operatorA completed modeling of local binary pattern operator
A completed modeling of local binary pattern operator
 
Recognition of Partially Occluded Face Using Gradientface and Local Binary Pa...
Recognition of Partially Occluded Face Using Gradientface and Local Binary Pa...Recognition of Partially Occluded Face Using Gradientface and Local Binary Pa...
Recognition of Partially Occluded Face Using Gradientface and Local Binary Pa...
 
Bundling Features for Large Scale Partial-Duplicate Web Image Search
Bundling Features for Large Scale Partial-Duplicate Web Image SearchBundling Features for Large Scale Partial-Duplicate Web Image Search
Bundling Features for Large Scale Partial-Duplicate Web Image Search
 

2016 ModernWeb 分享 - 恰如其分 MySQL 程式設計 (修)