使用MySQL进行系统/用户数据的基本存储。我需要存储/搜索消息(添加网络邮件功能),并进行分析(从当前和历史数据中即时报告/图表,如此类型的数据服装)+这意味着我需要存储历史数据。
所以问题是:
1)我是否将MySQL用于所有内容或使用单独的数据库来存储消息,分析/历史数据/用户数据?网站上还有现场直播,我听说MySQL不是很好用。
2)对于使用MySQL的表,InnoDB是否足够好,还是需要更高级的引擎,如TukoDB?
对于消息传递,朋友提到使用非关系数据库而不是MySQL。但是如果我使用单独的数据库类型,那么就会让他们保持同步并且考虑到这是一个24-7用户内容站点,我不能停机。
- 网站是一个高流量的用户内容网站,大量的读/写,但没有钱,所以我需要更少依赖服务器/硬件和更多的数据库/软件让我漂浮,因此只对免费/开源数据库和数据库开放引擎。
答案 0 :(得分:1)
在直接回答问题之前,我应该说你的担忧是不成熟的。在你有一个工作项目之前,很多假设是错误的。因此,不要设计完美的架构,只需使项目(非完美)和为变化做好准备。
现在,回到问题。
对于朋友提到的消息 请改用非关系型数据库 MySQL但如果我分开使用 数据库类型然后添加int他 让他们保持同步的头痛 并且鉴于这是24-7用户内容 网站,我不能停机。
这是一个很好的建议。您不需要将它们保持同步,因为您将在不同的数据库中保留不同的数据。
网站是一种流量高的用户内容 网站,大量读/写但没有钱所以我需要少依赖 数据库/软件上的服务器/硬件以及更多信息让我无所事事 因此只对免费/开源有效 数据库和数据库引擎。
如果我们将查看CAP定理和您的要求,我们可以告诉您SQL数据库不适合您,因为您为了一致性而牺牲了分区容差或可用性(您似乎没有需要)。
根据您的描述,您最好使用支持最终一致性的数据库。 MongoDB是最受欢迎的文档数据库之一。
我听到Cassandra的好消息。它允许您在一致性,可用性和分区容差之间进行调整。
Redis可用于提供一致性和可用性的极高负载。
所以我建议:
答案 1 :(得分:0)
我们在公司做的是:我们每天备份我们的数据,并从此备份计算统计数据。例如,它非常适合营销目的。所以,我们可以坚持使用InnoDB ......
目前,您不需要(太多)考虑当您拥有1000万用户时会发生什么。优先考虑的是获得一些东西! 所以带有InnoDB的MySQL就可以了。
当第一批用户到达时,您将看到需要改进的内容......
答案 2 :(得分:0)
http://dev.mysql.com/doc/refman/5.5/en/innodb-storage-engine.html
如果您阅读第一段,您会看到:
“InnoDB是MySQL的高可靠性和高性能存储引擎。从MySQL 5.5开始,它是默认的MySQL存储引擎.InnoDB的主要优势包括...... ”
我还需要说更多吗?