Soumettre la recherche
Mettre en ligne
NoSQL误用和常见陷阱分析
•
18 j'aime
•
1,953 vues
I
iammutex
Suivre
NoSQL误用和常见陷阱分析(孙立)
Lire moins
Lire la suite
Technologie
Signaler
Partager
Signaler
Partager
1 sur 29
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
redis 适用场景与实现
redis 适用场景与实现
iammutex
Redis介绍
Redis介绍
zhaolinjnu
Redis 常见使用模式分析
Redis 常见使用模式分析
vincent253
“云存储系统”赏析系列分享三:Sql与nosql
“云存储系统”赏析系列分享三:Sql与nosql
knuthocean
NoSQL-MongoDB介紹
NoSQL-MongoDB介紹
國昭 張
Mongo db 簡介
Mongo db 簡介
昱劭 劉
Mongo db 特性
Mongo db 特性
Hermes Chiang
Redis 介绍 -田琪
Redis 介绍 -田琪
Shaoning Pan
Recommandé
redis 适用场景与实现
redis 适用场景与实现
iammutex
Redis介绍
Redis介绍
zhaolinjnu
Redis 常见使用模式分析
Redis 常见使用模式分析
vincent253
“云存储系统”赏析系列分享三:Sql与nosql
“云存储系统”赏析系列分享三:Sql与nosql
knuthocean
NoSQL-MongoDB介紹
NoSQL-MongoDB介紹
國昭 張
Mongo db 簡介
Mongo db 簡介
昱劭 劉
Mongo db 特性
Mongo db 特性
Hermes Chiang
Redis 介绍 -田琪
Redis 介绍 -田琪
Shaoning Pan
淘宝软件基础设施构建实践
淘宝软件基础设施构建实践
Wensong Zhang
Google LevelDB Study Discuss
Google LevelDB Study Discuss
everestsun
Level db
Level db
宗志 陈
應用Ceph技術打造軟體定義儲存新局
應用Ceph技術打造軟體定義儲存新局
Alex Lau
Memcached vs redis
Memcached vs redis
qianshi
Leveldb background
Leveldb background
宗志 陈
数据库内核分享——第一期
数据库内核分享——第一期
frogd
分布式Key Value Store漫谈
分布式Key Value Store漫谈
Tim Y
Redis分享
Redis分享
yiihsia
美团点评技术沙龙010-Redis Cluster运维实践
美团点评技术沙龙010-Redis Cluster运维实践
美团点评技术团队
MySQL InnoDB 源码实现分析(一)
MySQL InnoDB 源码实现分析(一)
frogd
Hbase
Hbase
baggioss
Buffer pool implementaion inno db vs oracle
Buffer pool implementaion inno db vs oracle
frogd
硬件体系架构浅析
硬件体系架构浅析
frogd
Cephfs架构解读和测试分析
Cephfs架构解读和测试分析
Yang Guanjun
高性能并发Web服务器实现核心内幕
高性能并发Web服务器实现核心内幕
ideawu
Hacking Nginx at Taobao
Hacking Nginx at Taobao
Joshua Zhu
新浪微博Feed服务架构
新浪微博Feed服务架构
XiaoJun Hong
百度系统部分布式系统介绍 马如悦 Sacc2010
百度系统部分布式系统介绍 马如悦 Sacc2010
Chuanying Du
Building the Production Ready EB level Storage Product from Ceph - Dongmao Zhang
Building the Production Ready EB level Storage Product from Ceph - Dongmao Zhang
Ceph Community
No sql but even less security
No sql but even less security
iammutex
MongoDB 在盛大大数据量下的应用
MongoDB 在盛大大数据量下的应用
iammutex
Contenu connexe
Tendances
淘宝软件基础设施构建实践
淘宝软件基础设施构建实践
Wensong Zhang
Google LevelDB Study Discuss
Google LevelDB Study Discuss
everestsun
Level db
Level db
宗志 陈
應用Ceph技術打造軟體定義儲存新局
應用Ceph技術打造軟體定義儲存新局
Alex Lau
Memcached vs redis
Memcached vs redis
qianshi
Leveldb background
Leveldb background
宗志 陈
数据库内核分享——第一期
数据库内核分享——第一期
frogd
分布式Key Value Store漫谈
分布式Key Value Store漫谈
Tim Y
Redis分享
Redis分享
yiihsia
美团点评技术沙龙010-Redis Cluster运维实践
美团点评技术沙龙010-Redis Cluster运维实践
美团点评技术团队
MySQL InnoDB 源码实现分析(一)
MySQL InnoDB 源码实现分析(一)
frogd
Hbase
Hbase
baggioss
Buffer pool implementaion inno db vs oracle
Buffer pool implementaion inno db vs oracle
frogd
硬件体系架构浅析
硬件体系架构浅析
frogd
Cephfs架构解读和测试分析
Cephfs架构解读和测试分析
Yang Guanjun
高性能并发Web服务器实现核心内幕
高性能并发Web服务器实现核心内幕
ideawu
Hacking Nginx at Taobao
Hacking Nginx at Taobao
Joshua Zhu
新浪微博Feed服务架构
新浪微博Feed服务架构
XiaoJun Hong
百度系统部分布式系统介绍 马如悦 Sacc2010
百度系统部分布式系统介绍 马如悦 Sacc2010
Chuanying Du
Building the Production Ready EB level Storage Product from Ceph - Dongmao Zhang
Building the Production Ready EB level Storage Product from Ceph - Dongmao Zhang
Ceph Community
Tendances
(20)
淘宝软件基础设施构建实践
淘宝软件基础设施构建实践
Google LevelDB Study Discuss
Google LevelDB Study Discuss
Level db
Level db
應用Ceph技術打造軟體定義儲存新局
應用Ceph技術打造軟體定義儲存新局
Memcached vs redis
Memcached vs redis
Leveldb background
Leveldb background
数据库内核分享——第一期
数据库内核分享——第一期
分布式Key Value Store漫谈
分布式Key Value Store漫谈
Redis分享
Redis分享
美团点评技术沙龙010-Redis Cluster运维实践
美团点评技术沙龙010-Redis Cluster运维实践
MySQL InnoDB 源码实现分析(一)
MySQL InnoDB 源码实现分析(一)
Hbase
Hbase
Buffer pool implementaion inno db vs oracle
Buffer pool implementaion inno db vs oracle
硬件体系架构浅析
硬件体系架构浅析
Cephfs架构解读和测试分析
Cephfs架构解读和测试分析
高性能并发Web服务器实现核心内幕
高性能并发Web服务器实现核心内幕
Hacking Nginx at Taobao
Hacking Nginx at Taobao
新浪微博Feed服务架构
新浪微博Feed服务架构
百度系统部分布式系统介绍 马如悦 Sacc2010
百度系统部分布式系统介绍 马如悦 Sacc2010
Building the Production Ready EB level Storage Product from Ceph - Dongmao Zhang
Building the Production Ready EB level Storage Product from Ceph - Dongmao Zhang
En vedette
No sql but even less security
No sql but even less security
iammutex
MongoDB 在盛大大数据量下的应用
MongoDB 在盛大大数据量下的应用
iammutex
Webinar - Approaching 1 billion documents with MongoDB
Webinar - Approaching 1 billion documents with MongoDB
Boxed Ice
Living with SQL and NoSQL at craigslist, a Pragmatic Approach
Living with SQL and NoSQL at craigslist, a Pragmatic Approach
Jeremy Zawodny
Midas - on-the-fly schema migration tool for MongoDB.
Midas - on-the-fly schema migration tool for MongoDB.
Dhaval Dalal
Lessons Learned Migrating 2+ Billion Documents at Craigslist
Lessons Learned Migrating 2+ Billion Documents at Craigslist
Jeremy Zawodny
En vedette
(6)
No sql but even less security
No sql but even less security
MongoDB 在盛大大数据量下的应用
MongoDB 在盛大大数据量下的应用
Webinar - Approaching 1 billion documents with MongoDB
Webinar - Approaching 1 billion documents with MongoDB
Living with SQL and NoSQL at craigslist, a Pragmatic Approach
Living with SQL and NoSQL at craigslist, a Pragmatic Approach
Midas - on-the-fly schema migration tool for MongoDB.
Midas - on-the-fly schema migration tool for MongoDB.
Lessons Learned Migrating 2+ Billion Documents at Craigslist
Lessons Learned Migrating 2+ Billion Documents at Craigslist
Similaire à NoSQL误用和常见陷阱分析
基于My sql的分布式数据库实践 公开
基于My sql的分布式数据库实践 公开
YANGL *
基于My sql的分布式数据库实践
基于My sql的分布式数据库实践
锐 张
基于MySQL的分布式数据库实践
基于MySQL的分布式数据库实践
jackbillow
豆瓣网技术架构变迁
豆瓣网技术架构变迁
reinhardx
美丽说的架构发展与变迁 New
美丽说的架构发展与变迁 New
翀 刘
浅谈 My sql 性能调优
浅谈 My sql 性能调优
thinkinlamp
MySQL应用优化实践
MySQL应用优化实践
mysqlops
Taobao数据库这5年
Taobao数据库这5年
yp_fangdong
王龙:百度数据库架构演变与设计
王龙:百度数据库架构演变与设计
YANGL *
111030 gztechparty-小路-云时代的mysql
111030 gztechparty-小路-云时代的mysql
Zoom Quiet
20141128(刘胜)UTC2014分布式和云服务的思考与实践——支付清算行业分布式架构的探索
20141128(刘胜)UTC2014分布式和云服务的思考与实践——支付清算行业分布式架构的探索
liu sheng
大型网站架构的发展
大型网站架构的发展
drewz lin
大型网站架构的发展
大型网站架构的发展
Hesey
Nosql三步曲
Nosql三步曲
84zhu
基于MySQL开放复制协议的同步扩展
基于MySQL开放复制协议的同步扩展
Sky Jian
Python小团队不妨知道的技术
Python小团队不妨知道的技术
jie.wang
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
Scourgen Hong
美团技术沙龙04 美团下一代分布式存储系统
美团技术沙龙04 美团下一代分布式存储系统
美团点评技术团队
No sql带来了什么 孙立
No sql带来了什么 孙立
Shaoning Pan
利用统一存储获得无与伦比的速度,简化系统,并节省更多
利用统一存储获得无与伦比的速度,简化系统,并节省更多
ITband
Similaire à NoSQL误用和常见陷阱分析
(20)
基于My sql的分布式数据库实践 公开
基于My sql的分布式数据库实践 公开
基于My sql的分布式数据库实践
基于My sql的分布式数据库实践
基于MySQL的分布式数据库实践
基于MySQL的分布式数据库实践
豆瓣网技术架构变迁
豆瓣网技术架构变迁
美丽说的架构发展与变迁 New
美丽说的架构发展与变迁 New
浅谈 My sql 性能调优
浅谈 My sql 性能调优
MySQL应用优化实践
MySQL应用优化实践
Taobao数据库这5年
Taobao数据库这5年
王龙:百度数据库架构演变与设计
王龙:百度数据库架构演变与设计
111030 gztechparty-小路-云时代的mysql
111030 gztechparty-小路-云时代的mysql
20141128(刘胜)UTC2014分布式和云服务的思考与实践——支付清算行业分布式架构的探索
20141128(刘胜)UTC2014分布式和云服务的思考与实践——支付清算行业分布式架构的探索
大型网站架构的发展
大型网站架构的发展
大型网站架构的发展
大型网站架构的发展
Nosql三步曲
Nosql三步曲
基于MySQL开放复制协议的同步扩展
基于MySQL开放复制协议的同步扩展
Python小团队不妨知道的技术
Python小团队不妨知道的技术
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
美团技术沙龙04 美团下一代分布式存储系统
美团技术沙龙04 美团下一代分布式存储系统
No sql带来了什么 孙立
No sql带来了什么 孙立
利用统一存储获得无与伦比的速度,简化系统,并节省更多
利用统一存储获得无与伦比的速度,简化系统,并节省更多
Plus de iammutex
Scaling Instagram
Scaling Instagram
iammutex
Redis深入浅出
Redis深入浅出
iammutex
深入了解Redis
深入了解Redis
iammutex
8 minute MongoDB tutorial slide
8 minute MongoDB tutorial slide
iammutex
skip list
skip list
iammutex
Thoughts on Transaction and Consistency Models
Thoughts on Transaction and Consistency Models
iammutex
Rethink db&tokudb调研测试报告
Rethink db&tokudb调研测试报告
iammutex
Introduction to couchdb
Introduction to couchdb
iammutex
What every data programmer needs to know about disks
What every data programmer needs to know about disks
iammutex
Ooredis
Ooredis
iammutex
Ooredis
Ooredis
iammutex
redis运维之道
redis运维之道
iammutex
Realtime hadoopsigmod2011
Realtime hadoopsigmod2011
iammutex
[译]No sql生态系统
[译]No sql生态系统
iammutex
Couchdb + Membase = Couchbase
Couchdb + Membase = Couchbase
iammutex
Redis cluster
Redis cluster
iammutex
Redis cluster
Redis cluster
iammutex
Hadoop introduction berlin buzzwords 2011
Hadoop introduction berlin buzzwords 2011
iammutex
Couchdb and me
Couchdb and me
iammutex
10 Key MongoDB Performance Indicators
10 Key MongoDB Performance Indicators
iammutex
Plus de iammutex
(20)
Scaling Instagram
Scaling Instagram
Redis深入浅出
Redis深入浅出
深入了解Redis
深入了解Redis
8 minute MongoDB tutorial slide
8 minute MongoDB tutorial slide
skip list
skip list
Thoughts on Transaction and Consistency Models
Thoughts on Transaction and Consistency Models
Rethink db&tokudb调研测试报告
Rethink db&tokudb调研测试报告
Introduction to couchdb
Introduction to couchdb
What every data programmer needs to know about disks
What every data programmer needs to know about disks
Ooredis
Ooredis
Ooredis
Ooredis
redis运维之道
redis运维之道
Realtime hadoopsigmod2011
Realtime hadoopsigmod2011
[译]No sql生态系统
[译]No sql生态系统
Couchdb + Membase = Couchbase
Couchdb + Membase = Couchbase
Redis cluster
Redis cluster
Redis cluster
Redis cluster
Hadoop introduction berlin buzzwords 2011
Hadoop introduction berlin buzzwords 2011
Couchdb and me
Couchdb and me
10 Key MongoDB Performance Indicators
10 Key MongoDB Performance Indicators
NoSQL误用和常见陷阱分析
1.
误用和常见陷阱分析
孙立@qunar.com weibo.com@sunli1223
2.
大纲
被误用的NoSQL NoSQL陷阱 NoSQL与MySQL NoSQL无处不在 NoSQL运维
3.
被误用的NoSQL
非常容易出现的错误使用方法
4.
循环网络调用 • Memcached的循环和批量GET对比 Map<String, String>
result=new HashMap<String, String>(); for (int i = 0,len=keys.length; i < len; i++) { //循环获取memcached数据 result.put(keys[i], memcacheGet(keys[i])); } 10个key消耗10ms //使用批量get协议 Map<String, Object> objMap = client.get(Arrays.asList(keys)); 10个key消耗2ms 5倍性能的影响
5.
循环网络调用 • Redis的循环和批量GET对比 Map<String, String>
result=new HashMap<String, String>(); for (int i = 0,len=keys.length; i < len; i++) { //循环获取memcached数据 result.put(keys[i], jredis.get(keys[i])); } 100个key消耗10ms //循环从redis get数据 jredis.mget(keys); 100个key消耗5ms 2倍性能的影响
6.
不压缩大数据 • 压缩的分类
外部 client压 不压缩 缩 NoSQ存储 压缩
7.
不压缩大数据 • 内部压缩和外部压缩
web Web-外部压缩 web Web-外部压缩 内部压缩 web Web-外部压缩 NoSQL内部压缩,可以减小存储,提 外部压缩,可以减小存储,提升IO性能, 升IO性能,不能提升网络IO性能 并且能够提升网络IO性能
8.
不压缩大数据 • 压缩对比
CPU消耗可扩展 CPU消耗不可扩展 web Web-外部压缩 web Web-外部压缩 内部压缩 web Web-外部压缩 无压缩的原始数据 压缩后的数据 (1000*1024*1024/8)/(10*1024)=12800 qps (1000*1024*1024/8)/(4*1024)=32000 qps 1000Mb网卡单条数据10KB的理论qps
9.
跨语言交互
serialize 能unserialize? NoSQL Other PHP 某压缩算法 能解压吗? NoSQL Other JAVA
10.
NoSQL陷阱 NoSQL是一个新兴的话题,大量的NoSQL产品 也都是新出来的,难免出现各式各样的陷阱。
不能避免陷阱,但是得掉进去可以爬出来。
11.
官方数据很美好 • 官方数据 • 很少有提及缺点的
Tokyo Cabinet 的官方数据。实际测试 你会发现,数据增加后,速度会骤减
12.
场景错误 • Redis做持久存储
– 单点、复制问题 – 数据超过内存性能急剧下降 – 扩容问题 • Redis做Cache存储 – 性能极高 – 数据结构丰富 – 可以持久化、避免雪崩现象
13.
细节描述不清楚 • Ttserver=>兼容memcached协议 不支持memcached的flag参数 早期版本increment与memcached不一致 Stats命令不一致
14.
缓存重建 • 系统重启后,大部分请求到磁盘 • 整个系统的性能可能出现抖动 •
出现连锁雪崩反应
15.
NoSQL陷阱-32bit问题 • Ttserver -2GB(32bit) •
Mongodb-2.5GB (32 bit) Ttserver在32bit下,到达2g数据大小 将出现无法启动的现象
16.
版本升级问题 • 版本升级带来兼容问题(官方未声明的) • 版本升级可能导致适用场景变化
17.
NoSQL与MySQL 不要犹豫该用MySQL还是NoSQL,在你还没有掌握 NoSQL前,最好先在小项目尝试下。
18.
选择NoSQL需要考虑 •
数据的安全性-是否久经考验 • 事务性的保障 • 数据的重要性 • 是否有DBA运维 • 未来的业务需求变化
19.
性能之争—差别在哪里? • 普通磁盘的IOPS(几百个)
如果是SSD? • 寻道时间、延迟时间 • 顺序读和顺序写吞吐上百MB/S 随机写变顺序写 内存索引-热数据cache NoSQL在普通 磁盘的优化 读写算法优化(场景化) 网络协议优化
20.
NoSQL无处不在 不管你信不信,你很可能早已在接触NoSQL了。 比如:
Memcached缓存 SVN使用的BDB
21.
为什么要构建自己的NoSQL •
考察清楚场景和需求 • 现有产品满足需求成本高 • 针对特殊场景,也许比想象的简单 • 可掌控
22.
构建自己的NoSQL • IP查询 TreeMap<IPEntry,
String> 可轻松完成
23.
构建自己的NoSQL • 通过MySQL构建
GET MySQL SET 接口封 装 MySQL DELETE MySQL 这样也是NoSQL
24.
NoSQL运维 并不像官方宣称的那样,NoSQL无需DBA运维
25.
运维NoSQL并不容易 •
文档齐全吗? • 网上交流多嘛? • 周边工具齐全吗? • 出现意外问题你能搞定吗? 出现意外问题,很难求助到人
26.
监控-运维之本 除了操作系统最基本的监控,还应该监控 •
IO • CPU • 延迟 • QPS • 抖动 • 数据量
27.
备份很重要 • 避免单点 • 定期数据库备份 •
开发前做好切换准备(能切换到其他产品)
28.
谢谢!
Télécharger maintenant