SlideShare uma empresa Scribd logo
1 de 27
Baixar para ler offline
设计高性能MySQL应用

     邹德平(@半瓶)
  http://www.banping.com
 http://weibo.com/banping
About me
•   邹德平(半瓶 & banping)
•   架构师@热推网(RT.CN)
•   《Oracle DBA手记》作者之一
•   ITPUB论坛MySQL和NoSQL版版主
•   ACOUG Member / TechClub Founder
•   Blog : http://www.banping.com
About TechClub
• IT技术沙龙
• 兴趣、分享、公益
• http://www.tech-club.org
• https://groups.google.com/group/tech-club-
  org
• TechClub@weibo
• TechCluber@twitter
• QQ群:79207910
议程
•   基础工作
•   规划你的数据
•   程序员的工具
•   设计表结构
•   SQL和索引
•   讨论
基础工作
•   发行版
•   表的存储引擎
•   表的字符集
•   部署架构
•   事务的隔离级别 / binlog_format
•   充分利用服务器资源
规划你的数据
•   以用户体验为出发点
•   海量数据 VS 海量访问
•   数据的生命周期
•   数据的关联性
•   CAP理论之ACID与BASE
•   Scale up & Scale out
•   Sharding 策略
程序员的工具
• Explain
• Profiling
• procedure analyse()
设计表结构
• 表是什么
• 列的设计
• 数据类型
表是什么
列的设计
•   面向SQL
•   主键
•   使用频率
•   存储容量
•   冗余
数据类型
•   Simple is beauty
•   int优先
•   varchar(N)
•   decimal VS float & double
•   timestamp VS datetime
•   IP : inet_aton() & inet_ntoa()
•   enum & set
•   拒绝NULL
SQL和索引
• 制定SQL规范
• 设计高效的分页
制定SQL规范
•   绑定变量
•   尽量使用索引
•   只取你需要的数据
•   批量写入和更新
•   避免隐性数据类型转换
•   尽可能避免join
•   尽可能减少查询的次数
如何分页
• Select count(*) from message;
• Select * from message order by id desc limit
  1000,20;
这不仅仅是技术问题
Limit offset,N的弊端
去除offset
优化Count
一个例子
Procedure analyse()
索引
Cover index
归根到底都是存储
profiling
Show profile for query
设计更合理的Count




          Copyright timyang
讨论
•   前期的设计胜过后期的优化
•   不要在数据库的范畴内解决所有的问题
•   从数据库的设计中学习系统设计
•   提问及研讨

Mais conteúdo relacionado

Mais procurados

Mais procurados (9)

給開發人員的資料庫效能建議
給開發人員的資料庫效能建議給開發人員的資料庫效能建議
給開發人員的資料庫效能建議
 
Comment System of 56.com
Comment System of 56.comComment System of 56.com
Comment System of 56.com
 
Phpar模型实践
Phpar模型实践Phpar模型实践
Phpar模型实践
 
漫画背后的故事
漫画背后的故事漫画背后的故事
漫画背后的故事
 
No sql
No sqlNo sql
No sql
 
深入淺出Node.JS
深入淺出Node.JS深入淺出Node.JS
深入淺出Node.JS
 
架構設計-資料存取的選擇
架構設計-資料存取的選擇架構設計-資料存取的選擇
架構設計-資料存取的選擇
 
An overview to sql engines
An overview to sql enginesAn overview to sql engines
An overview to sql engines
 
Query store查詢調校新利器
Query store查詢調校新利器Query store查詢調校新利器
Query store查詢調校新利器
 

Destaque

งานวิทยาศาสตร์
งานวิทยาศาสตร์งานวิทยาศาสตร์
งานวิทยาศาสตร์sugareyes
 
งานวิทยาศาสตร์
งานวิทยาศาสตร์งานวิทยาศาสตร์
งานวิทยาศาสตร์sugareyes
 
จิตวิทยาการเรียนรู้ Jea
จิตวิทยาการเรียนรู้ Jeaจิตวิทยาการเรียนรู้ Jea
จิตวิทยาการเรียนรู้ Jeajaacllassic
 
Pobreza y la familia mexicana
Pobreza y la familia mexicanaPobreza y la familia mexicana
Pobreza y la familia mexicanaEuler Ruiz
 
Puhakka & tuominen_2408
Puhakka & tuominen_2408Puhakka & tuominen_2408
Puhakka & tuominen_2408Visa Tuominen
 
Tecido adiposo e cartilaginoso
Tecido adiposo e cartilaginosoTecido adiposo e cartilaginoso
Tecido adiposo e cartilaginosobiomedunifil
 
Basisferdigheter på jobben for truckfører
Basisferdigheter på jobben for truckførerBasisferdigheter på jobben for truckfører
Basisferdigheter på jobben for truckførertrinefarmen
 
웹기반 라이트 게임
웹기반 라이트 게임웹기반 라이트 게임
웹기반 라이트 게임dltkdgns4141
 
Presentacion gatotorcuato
Presentacion   gatotorcuatoPresentacion   gatotorcuato
Presentacion gatotorcuatoelgatotorcuato
 

Destaque (20)

งานวิทยาศาสตร์
งานวิทยาศาสตร์งานวิทยาศาสตร์
งานวิทยาศาสตร์
 
Presentation1 maqui
Presentation1 maquiPresentation1 maqui
Presentation1 maqui
 
งานวิทยาศาสตร์
งานวิทยาศาสตร์งานวิทยาศาสตร์
งานวิทยาศาสตร์
 
จิตวิทยาการเรียนรู้ Jea
จิตวิทยาการเรียนรู้ Jeaจิตวิทยาการเรียนรู้ Jea
จิตวิทยาการเรียนรู้ Jea
 
O canto a serviço do homem, em
O canto a serviço do homem, emO canto a serviço do homem, em
O canto a serviço do homem, em
 
Pobreza y la familia mexicana
Pobreza y la familia mexicanaPobreza y la familia mexicana
Pobreza y la familia mexicana
 
MS|SA Portfolio 2011
MS|SA Portfolio 2011MS|SA Portfolio 2011
MS|SA Portfolio 2011
 
Puhakka & tuominen_2408
Puhakka & tuominen_2408Puhakka & tuominen_2408
Puhakka & tuominen_2408
 
Tecido adiposo e cartilaginoso
Tecido adiposo e cartilaginosoTecido adiposo e cartilaginoso
Tecido adiposo e cartilaginoso
 
Asi
AsiAsi
Asi
 
Energía pameeeeee
Energía pameeeeeeEnergía pameeeeee
Energía pameeeeee
 
Basisferdigheter på jobben for truckfører
Basisferdigheter på jobben for truckførerBasisferdigheter på jobben for truckfører
Basisferdigheter på jobben for truckfører
 
웹기반 라이트 게임
웹기반 라이트 게임웹기반 라이트 게임
웹기반 라이트 게임
 
Domund 2011 exposició
Domund 2011  exposicióDomund 2011  exposició
Domund 2011 exposició
 
機械受注6月度
機械受注6月度機械受注6月度
機械受注6月度
 
A agonia de cristo jonathan edwards
A agonia de cristo   jonathan edwardsA agonia de cristo   jonathan edwards
A agonia de cristo jonathan edwards
 
ทักษะการขอความช่วยเหลือ
ทักษะการขอความช่วยเหลือทักษะการขอความช่วยเหลือ
ทักษะการขอความช่วยเหลือ
 
Pesquisa e Ensino em Geografia a Linguagem Imagética para uma Educação Geográ...
Pesquisa e Ensino em Geografia a Linguagem Imagética para uma Educação Geográ...Pesquisa e Ensino em Geografia a Linguagem Imagética para uma Educação Geográ...
Pesquisa e Ensino em Geografia a Linguagem Imagética para uma Educação Geográ...
 
Presentacion gatotorcuato
Presentacion   gatotorcuatoPresentacion   gatotorcuato
Presentacion gatotorcuato
 
Salud pública dengue
Salud pública  dengueSalud pública  dengue
Salud pública dengue
 

Semelhante a 设计高性能mysql应用-TechClub技术沙龙

My sql数据库开发的三十六条军规
My sql数据库开发的三十六条军规My sql数据库开发的三十六条军规
My sql数据库开发的三十六条军规isnull
 
MySQL数据库开发的三十六条军规
MySQL数据库开发的三十六条军规MySQL数据库开发的三十六条军规
MySQL数据库开发的三十六条军规mysqlops
 
Mysql数据库开发的三十六条军规 石展_完整
Mysql数据库开发的三十六条军规 石展_完整Mysql数据库开发的三十六条军规 石展_完整
Mysql数据库开发的三十六条军规 石展_完整Yousri Yan
 
Mysql调优
Mysql调优Mysql调优
Mysql调优ken shin
 
数据架构方面的一些探讨
数据架构方面的一些探讨数据架构方面的一些探讨
数据架构方面的一些探讨Chao Zhu
 
改善Programmer生活的sql技能
改善Programmer生活的sql技能改善Programmer生活的sql技能
改善Programmer生活的sql技能Rack Lin
 
基于My sql的分布式数据库实践
基于My sql的分布式数据库实践基于My sql的分布式数据库实践
基于My sql的分布式数据库实践锐 张
 
基于MySQL的分布式数据库实践
基于MySQL的分布式数据库实践基于MySQL的分布式数据库实践
基于MySQL的分布式数据库实践jackbillow
 
Exadata那点事
Exadata那点事Exadata那点事
Exadata那点事freezr
 
微服務架構 導入經驗分享 吳剛志 - Community Open Camp
微服務架構 導入經驗分享 吳剛志 - Community Open Camp微服務架構 導入經驗分享 吳剛志 - Community Open Camp
微服務架構 導入經驗分享 吳剛志 - Community Open CampAndrew Wu
 
111030 gztechparty-小路-云时代的mysql
111030 gztechparty-小路-云时代的mysql111030 gztechparty-小路-云时代的mysql
111030 gztechparty-小路-云时代的mysqlZoom Quiet
 
Introduction to big data
Introduction to big dataIntroduction to big data
Introduction to big data邦宇 叶
 
新浪微博Feed服务架构
新浪微博Feed服务架构新浪微博Feed服务架构
新浪微博Feed服务架构XiaoJun Hong
 
大型电商的数据服务的要点和难点
大型电商的数据服务的要点和难点 大型电商的数据服务的要点和难点
大型电商的数据服务的要点和难点 Chao Zhu
 
大型网站架构的发展
大型网站架构的发展大型网站架构的发展
大型网站架构的发展drewz lin
 
大型网站架构的发展
大型网站架构的发展大型网站架构的发展
大型网站架构的发展Hesey
 
COSCUP 2019 - 開源大數據引擎 Greenplum
COSCUP 2019 - 開源大數據引擎 GreenplumCOSCUP 2019 - 開源大數據引擎 Greenplum
COSCUP 2019 - 開源大數據引擎 GreenplumOmni-Alex Chen
 
使用Dsl改善软件设计
使用Dsl改善软件设计使用Dsl改善软件设计
使用Dsl改善软件设计mingjin
 
Mvcc (oracle, innodb, postgres)
Mvcc (oracle, innodb, postgres)Mvcc (oracle, innodb, postgres)
Mvcc (oracle, innodb, postgres)frogd
 

Semelhante a 设计高性能mysql应用-TechClub技术沙龙 (20)

My sql数据库开发的三十六条军规
My sql数据库开发的三十六条军规My sql数据库开发的三十六条军规
My sql数据库开发的三十六条军规
 
MySQL数据库开发的三十六条军规
MySQL数据库开发的三十六条军规MySQL数据库开发的三十六条军规
MySQL数据库开发的三十六条军规
 
Mysql数据库开发的三十六条军规 石展_完整
Mysql数据库开发的三十六条军规 石展_完整Mysql数据库开发的三十六条军规 石展_完整
Mysql数据库开发的三十六条军规 石展_完整
 
Mysql调优
Mysql调优Mysql调优
Mysql调优
 
数据架构方面的一些探讨
数据架构方面的一些探讨数据架构方面的一些探讨
数据架构方面的一些探讨
 
mercury
mercurymercury
mercury
 
改善Programmer生活的sql技能
改善Programmer生活的sql技能改善Programmer生活的sql技能
改善Programmer生活的sql技能
 
基于My sql的分布式数据库实践
基于My sql的分布式数据库实践基于My sql的分布式数据库实践
基于My sql的分布式数据库实践
 
基于MySQL的分布式数据库实践
基于MySQL的分布式数据库实践基于MySQL的分布式数据库实践
基于MySQL的分布式数据库实践
 
Exadata那点事
Exadata那点事Exadata那点事
Exadata那点事
 
微服務架構 導入經驗分享 吳剛志 - Community Open Camp
微服務架構 導入經驗分享 吳剛志 - Community Open Camp微服務架構 導入經驗分享 吳剛志 - Community Open Camp
微服務架構 導入經驗分享 吳剛志 - Community Open Camp
 
111030 gztechparty-小路-云时代的mysql
111030 gztechparty-小路-云时代的mysql111030 gztechparty-小路-云时代的mysql
111030 gztechparty-小路-云时代的mysql
 
Introduction to big data
Introduction to big dataIntroduction to big data
Introduction to big data
 
新浪微博Feed服务架构
新浪微博Feed服务架构新浪微博Feed服务架构
新浪微博Feed服务架构
 
大型电商的数据服务的要点和难点
大型电商的数据服务的要点和难点 大型电商的数据服务的要点和难点
大型电商的数据服务的要点和难点
 
大型网站架构的发展
大型网站架构的发展大型网站架构的发展
大型网站架构的发展
 
大型网站架构的发展
大型网站架构的发展大型网站架构的发展
大型网站架构的发展
 
COSCUP 2019 - 開源大數據引擎 Greenplum
COSCUP 2019 - 開源大數據引擎 GreenplumCOSCUP 2019 - 開源大數據引擎 Greenplum
COSCUP 2019 - 開源大數據引擎 Greenplum
 
使用Dsl改善软件设计
使用Dsl改善软件设计使用Dsl改善软件设计
使用Dsl改善软件设计
 
Mvcc (oracle, innodb, postgres)
Mvcc (oracle, innodb, postgres)Mvcc (oracle, innodb, postgres)
Mvcc (oracle, innodb, postgres)
 

设计高性能mysql应用-TechClub技术沙龙