我正在寻找一个免费的SQL数据库,能够处理我的数据模型。该项目是一个生产数据库,运行在没有任何复制的本地网络中,没有连接到internet。同时连接的应用程序数量将少于10。
未来5年的数据量预测如下:
我的第一个想法是使用MySQL,但我在web 几篇文章中发现,MySQL不是为大型数据库设计的。但是,在这种情况下,的含义是什么?
有没有人告诉我MySQL是否能够处理我的数据模型?我读到Postgres将是一个很好的选择,但需要很多小时才能对大表进行有效的调优。
我不认为我的项目会使用NOSQL数据库。我会知道,如果有人有一些经验,与分享有关MySQL。
更新
数据库将通过C#软件(同一时间最多10次)和web应用程序(2-3次同时访问)访问,
需要注意的是,只有很少对大表进行更新,只有insert查询。删除语句将只在20个小表上执行几次。
大表经常用于select语句,但最常见的方法是知道条目是否存在,而不是返回分组和有序的批数据。
发布于 2014-02-09 16:47:31
我在Percona工作,一家为MySQL解决方案提供咨询和其他服务的公司。
值得注意的是,我们已经与许多客户合作过,他们成功地使用了具有非常大数据库的MySQL。数以万计的数据,数以万计的表,数十亿行的表,每秒数万次请求的事务负载。通过阅读我们的一些客户案例研究,您可以获得更多的洞察力。
您描述了表的数量和行数,但没有描述如何查询这些表。当然,我们可以以一种不能很好扩展的方式来查询一个只有几百行的表。但这可以说是任何数据库,而不仅仅是MySQL。
同样,我们可以高效地查询大小为Terra字节的表。这完全取决于您需要如何查询它。
您还必须为性能设置特定的目标。如果您想让查询在毫秒内运行,这是很有挑战性的,但对于高端硬件来说是可行的。如果您的查询在几秒钟内就足够运行,那么您可以对可伸缩性放松得多。
关键是,在这些情况下,MySQL不是一个约束因素,任何其他数据库选择都是一个约束因素。
请评论一下。
MySQL的默认存储引擎InnoDB中有参考完整性检查。声称"MySQL没有完整性检查“是多年来经常重复的一个神话。
我认为您需要停止阅读关于MySQL的肤浅或过时的文章,并阅读一些更完整和最新的文档。
发布于 2014-02-09 16:47:16
MySQL有两个重要的(而且非常不同的)数据库引擎-- MyISAM和InnoDB。限制取决于使用情况-- MyISAM是非事务性的--有相对快速的导入,但是它太简单(没有自己的内存缓存),而大于100 be的表上的连接可能很慢(由于MySQL计划器太简单--从5.6中支持哈希连接)。InnoDB是事务性的,在基于主键的操作中非常快--但是导入速度更慢。
当前版本的MySQL没有像Postgres那样好的计划器(有进展)--所以复杂的查询在PostgreSQL上通常要好得多--而真正简单的查询在MySQL上更好。
PostgreSQL配置的复杂性是神话。它比MySQL InnoDB配置简单得多--您只需设置五个参数: max_connection、shared_buffers、work_mem、maintenance_work_mem和effective_cache_size。几乎所有这些都与服务器上Postgres的可用内存有关。通常工作5分钟。根据我的经验,100 my的数据库在Postgres上通常没有任何问题(可能在MySQL上也是如此)。有两个重要的因素,一个是你期望的速度,一个是内存和IO的速度。
对于大型数据库,您必须具备任何数据库技术的经验和知识。当您在内存中时,一切都是快速的,当数据库大小/内存比更高时,您需要做更多的工作才能获得好的结果。
发布于 2014-02-09 17:06:04
首先,MySQL表大小仅受操作系统允许的文件大小限制(即I.任何现代操作系统上的terra字节)的限制。这不会造成任何问题。最重要的是这样的问题:
MySQL被Facebook、google、twitter和其他拥有大桌子的人使用,而在社交媒体时代,1亿人并不多见。MySQL没有什么缺点(尽管在大多数情况下我更喜欢postgresql ),比如通过添加一个新的索引来修改大型表。如果你没有副本的话,你的公司可能会在几天内被迫休假。为什么NoSQL不是一种选择呢?有时,混合方法是一个很好的选择,比如在MySQL中使用关系业务逻辑,在NoSQL数据库(如MongoDb )中使用巨大的统计表,可以在几分钟内添加新服务器(MySQL也可以,但它更复杂)。现在,MongoDB可以有一个索引列,可以以惊人的速度进行搜索。底线是:你需要先回答上面的问题,才能做出一个非常明智的决定。如果您有庞大的表,并且只在索引键上搜索,那么几乎所有的数据库都可以使用--如果您希望在接下来的道路上对结构进行许多更改,那么您需要使用不同的方法。
编辑:根据你刚刚发布的更新,我怀疑你会遇到问题。
https://stackoverflow.com/questions/21661694
复制相似问题