社交网站的数据库和数据库引擎
对于包含用户个人资料、实时动态、照片/视频/内容共享等的大量用户内容网站,要使用什么数据库以及什么数据库引擎?当然,Oracle/Microsoft sql 已被淘汰,因为它们不是免费的(或便宜的)。我将 MySQL 与 MyISAM 结合使用,但这会在社交网站上遇到性能问题。即使使用 InnoDB 也可能对性能没有帮助。那么首先哪个数据库更好用,哪个引擎更好——从免费到付费?
主要关注的是实时反馈的性能,此外还有大量的数据跟踪和分析挖掘。
由于这是一家初创公司 - 硬件成本有限,因此这里没有硬件场来支持性能,因此至少在前两年寻求一个不错的替代方案。
For a heavy user content website with user profiles, live feeds, photo /video/content sharing, etc what DB to use, and what DB engine? Ofcourse Oracle/Microsoft sql are out because they are not free (or cheap). I am using MySQL with MyISAM but that will run into performance issues on a social site. Even using InnoDB may not help performance. So firstly which DB is better to use and which engine - starting from Free to paid?
Main concern is with live feeds performance, plus there is lots of data tracking and mining with analytic.
Since this is a startup - hardware costs are limited so no hardware farm here to support performance, hence seeking a decent alternative for the first 2 years atleast.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我建议为文件建立一个云帐户,并可能为数据库(MySQL 和 MyISAM)建立一个专用服务器。
您可以限制在云上存储文件的成本,但可以通过增加处理能力和内存来为数据库配备专用服务器来提高性能。
I would recommend getting a cloud account for the files and potentially a dedicated server for the DB (MySQL and MyISAM).
You can limit your cost on the cloud storing the files, but enhance performance by having a dedicated server for the DB by increasing processing power and memory.
如果你的用户群足够大,需要高性能的数据库,那么你的带宽和存储费用将不会便宜;为什么要吝惜数据库?
MS SQL 有免费和/或廉价版本,但性能受到限制。我总是从它们开始,如果网站成功,我就会升级。也许 Oracle 也提供了类似的东西。
编辑:我应该在一开始就说,MySQL 不太可能很快就无法满足需求,而且整个问题可能是过早优化的一个例子。
If your userbase is large enough to require a high-performance DB, your bandwidth and storage charges will not be cheap; why skimp on the database?
MS SQL has free and/or cheap editions which are performance-inhibited. I always start with them, and if the site takes off, I upgrade. Probably Oracle offers something similar.
Edit: I should have said at the start that you're unlikely to outgrow MySQL anytime soon, and that this whole question might be a case of premature optimization.
如果你是一家初创公司,你也许买得起微软的产品。查看他们的 BizSPark 计划,该计划为您提供几年免费软件。
但我不确定我是否同意 MySQL 不是您的最佳选择。 Facebook 不使用 MySQL 吗?你期待变得更大吗?
如果您认为 InnoDB 对您来说太慢,MySQL 上还有其他存储引擎选项。例如,您是否研究过TokuDB?
您是否考虑过使用 Linode.com 这样的托管服务来代替您自己的硬件?这可能更适合您的现金流状况。如果您确实觉得数据库负载很繁重,您可以拥有专用或多台服务器。从专用数据库盒开始,然后从那里扩展。您还可以使用 Amazon EC2 等云服务。
编辑:我刚刚意识到 Tokutek 有一个社交网络案例研究:
http://tokutek.com/customers/a-social-networking-case -study/
在我看来,MySQL 的发展不太可能很快超过 MySQL。如果您变得足够忙碌而需要像 TokuDB 这样的东西,您可以通过一些分享来感谢我。 :-)
If you are a start-up, you may be able to afford Microsoft's stuff after all. Check out their BizSPark program which gives you software for free for a few years.
I am not sure that I agree that MySQL is not your best option though. Doesn't FaceBook use MySQL? Are you expecting to be bigger?
If you think that InnoDB will be too slow for you, there are other storage engine options on MySQL. For example, have you investigated TokuDB?
Have you considered a hosting service like Linode.com instead of your own hardware? This might be a better fit for your cashflow profile. If you really feel the DB load is onerous, you could have dedicated or multiple servers. Start with a dedicated DB box and scale up from there. You could also go with a cloud service like Amazon EC2.
EDIT: I just realized that Tokutek have a social networking case study:
http://tokutek.com/customers/a-social-networking-case-study/
It sounds to me like you are unlikely to outgrow MySQL any time soon. If you grow busy enough to need anything like TokuDB you can thank me with a few shares. :-)