惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

爱范儿
爱范儿
博客园_首页
W
WeLiveSecurity
S
Secure Thoughts
S
Security @ Cisco Blogs
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Hugging Face - Blog
Hugging Face - Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
H
Hacker News: Front Page
Project Zero
Project Zero
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
U
Unit 42
N
News and Events Feed by Topic
N
News and Events Feed by Topic
Hacker News - Newest:
Hacker News - Newest: "LLM"
Forbes - Security
Forbes - Security
T
Tor Project blog
I
Intezer
B
Blog
F
Full Disclosure
Security Archives - TechRepublic
Security Archives - TechRepublic
F
Fortinet All Blogs
Schneier on Security
Schneier on Security
T
Threat Research - Cisco Blogs
AI
AI
Google DeepMind News
Google DeepMind News
L
LINUX DO - 最新话题
Cloudbric
Cloudbric
L
Lohrmann on Cybersecurity
WordPress大学
WordPress大学
博客园 - 聂微东
雷峰网
雷峰网
P
Privacy International News Feed
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
PCI Perspectives
PCI Perspectives
Y
Y Combinator Blog
Spread Privacy
Spread Privacy
Simon Willison's Weblog
Simon Willison's Weblog
罗磊的独立博客
Vercel News
Vercel News
A
Arctic Wolf
The Register - Security
The Register - Security
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Microsoft Azure Blog
Microsoft Azure Blog
H
Heimdal Security Blog
Know Your Adversary
Know Your Adversary
P
Proofpoint News Feed
C
Cybersecurity and Infrastructure Security Agency CISA
P
Proofpoint News Feed

博客园 - 说不得

折腾了两天的跨站脚本提交问题,与IIS7有关 MongoDB 服务启动时指定dbpath DataGridView绑定行号 Func<T, TResult>的一个使用场合 没别的,来张截图好了 SqlBulkCopy使用心得 使用两个信号量实现主线程和线程池同步 VS2010 出现错误提示“Error Creating Control - Object reference not set to an instance of an objec” 的解决方法 SQLite.Net操作类 Win7 下使用 SQLite Expert 操作C盘下的数据库发生错误:Attempt to write a readonly database. C#查找某一窗口并按钮 再见,Google 使用ManagedSpyLib监视.net程序中控件属性的变化 计算两张黑白图片的相似度 使用c#把一个32位整数按位相加最快的方法是什么? 关于变量在循环内声明还是在循环外声明 轻量级分页控件 安装sqlserver2008时出现“Rule "Previous releases of Microsoft Visual Studio 2008" failed.”错误的解决办法 最近见过的垃圾代码 - 说不得 - 博客园
【转帖】三种决不能放进数据库的东西
说不得 · 2012-06-14 · via 博客园 - 说不得

原文:http://www.revsys.com/blog/2012/may/01/three-things-you-should-never-put-your-database/

译者:cxhuan 

        想我在一些演讲中说的一样,提升系统性能的最好的方式是千万不要做“傻事”。我并不是说你或者你的开发者是傻子,而是说人们容易忽略这些决策的隐形问题,没有意识到一些问题的可维护性。作为一个咨询顾问,这种案例我见多了,还没见过有谁能够很好地解决这个问题。


图片,文件和字节数据

        你们的数据库支持大容量二进制数据,所以你觉得应该把你的文件放进去,对吗?完全不是这样的。这样甚至不方便多种数据库语言的绑定。将文件存储在数据库中有几个问题:
        读/写数据到数据库总比文件系统慢
        数据库备份量巨大而且更耗时
        访问文件时要通过应用层和数据库层
        最后两条是真正的祸害。将缩略图放进数据库?很好,但是现在你无法用代理器或者其他的轻量级Web服务器来支撑他们了。
省省吧,存储你硬盘文件上的一个相对路径到数据库或者用类似于S3或CDN的东西代替就可以了。

临时数据

        统计度量数据,GPS位置信息,会话数据,任何只使用短时间或者经常变换的数据都是临时数据。如果你发现自己花大量时间去删除只使用一个小时、一天、一周的表格,那么你就用了错误的工具了。使用 redisstatsd/graphiteRiak或者任何更适合的工具去工作吧。这种方法同样适用于聚合性的临时数据。与其预定时间等挖掘机赶到你那里去挖个坑种番茄,还不如在车库里那个铁铲出来挖来的快。做事要选用合适的工具。

日志

        这个日志表面上看好像是可以放进数据库的,而且那个“我可能在未来需要用复杂的查询语句来查询他们”的言论好像更得人心。将日志存进数据库不可怕,可怕的是将他们和其他产品信息放进同一个数据库。也许你对日志比较保守,一般将每个Web请求放进同一日志行中。那样仍然会对网站的每一个动作产生一条插入记录来和用户争用资源。将你的日志级别设为冗余或者调试来代替用诸如Splunk,Loggly或者旧的简单的文件系统,不要放进产品数据库。你需要偶尔的检查他们,有时候甚至需要写一小段代码来找数据,这比在你的系统中放入固定资源要容易。
        你是独立个体,你的问题与众不同,所以你做了其中一项也无所谓。不,事实真不是这样的。相信我。