我计划在一个表中创建一个大小超过1200万条记录的数据库,没有其他连接等用于搜索,根据表的字段名称进行过滤,在MYSQL后端大约4 GB大小和php前端。
问题是MYSQL是否支持大小约为4 GB的数据库,使用php进行搜索时是否会出现任何性能问题
我能否以至少30到60秒的速度获得结果
请提出您的建议
答案 0 :(得分:6)
是的,您将遇到性能问题。每个应用程序都存在数据库性能问题,即使数据库比您的数据库小得多。您需要学习并努力了解如何最大限度地利用RDBMS技术。
好消息是你可以做到。 4GB的数据库并不过分,许多成功案例涉及的数据库要大得多。
我建议你从研究以下资源开始:
将APC cache或Memcached等技术与PHP和MySQL相结合,对于高性能PHP应用程序来说也是必不可少的。因为最快的数据库查询是您不必运行的查询(因为数据已经在缓存中)。
我们无法回答有关在30到60秒内获取查询结果的问题,因为我们不知道您需要运行哪种类型的查询。性能还有很多其他因素。你问题的幼稚和一般性质表明你在成功之前需要做很多的学习。
答案 1 :(得分:2)
没有一个根本原因,为什么一个拥有1200万行的4GB数据库应该有性能问题,但这并不是说它不会。如果您在具有合理索引的单个表上执行基本选择查询,则结果应在几秒钟内返回,而不是20 - 30秒。将结果集(如果它很大)加载到页面中可能需要相当长的时间。
为什么不尝试一下?您是否可以将数据加载到运行MYSQL / MARIADB的测试服务器中并执行一些测试查询,这将为您提供良好的开始指示。
答案 2 :(得分:2)
是的,当然mysql可以支持4G等小型数据库。您将不会遇到性能问题,因为您的数据库服务器将具有> 4G的ram,所以整个数据库都可以保存在ram中。
如果您想使用大型数据库,MySQL当然也可以支持,但您无法在RAM中保持说,1Tb。
答案 3 :(得分:1)
看一下这些链接:
http://tag1consulting.com/MySQL_Engines_MyISAM_vs_InnoDB
http://www.allinterview.com/showanswers/35641.html
MySQL可与两个已知的数据库引擎MyISAM和InnoDB配合使用。 InnoDB以其在大型数据库中的高性能而闻名。
答案 4 :(得分:0)
适当的索引和简单查询将处理SELECT性能问题。
答案 5 :(得分:0)
作为参考点,我们有一个15GB的数据库,但它分为各种表格。最大的表格具有最简单的结构,有助于提高性能。