MySql是否适合大型数据库?
我为一家公司工作,我们总是访问外部网站获取信息。 该网站由一家过时的软件开发公司开发,甚至没有网站。 由于数据库的内容提供商仅使用这个功能异常严重的站点上传数据,因此他们在我所在的州几乎是垄断企业。 这个网站的问题是,它太慢,它甚至不起作用。
控制了连接速度和浏览器类型等事情后,很明显问题在于网站本身。 因此,我正在考虑重做该网站,然后将其提供给内容提供商作为上传数据的手段。 基本上,这个项目需要一个非常大的数据库来存储数以十万计的名称,地址和其他类型的数据。
我唯一的使用数据库的经验是MySql,而且我对动态内容的唯一体验就是PHP。 所以,是的,我试图找出旧的PHP + MySQL组合是否适合存储和表示大量数据。 我只在小型项目上完成了这项工作,但我认为带动态内容占位符的整个HTML模板可以正常工作。
当然,我真的不知道为什么这个网站太慢了。 也许这根本不是数据库。 也许它是服务器或其他东西。 但我试图完成的关键是改善本网站的速度和功能。 我没有其他类型的数据库的经验,所以你可以为这样的项目提供任何提示/建议,将不胜感激。 此外,关于如何通常制作一个快速且功能强大的站点需要代表来自超大型数据库的动态数据的任何提示也会有所帮助。
*编辑:我正在学习Python,所以如果你认为这将是一个更好的侧面脚本语言,那么我当然可以尝试实现与上面的初始计划不同的东西。
如果你做了一个好的设计,你可以在MySQL中拥有非常大的数据库(这个问题可能对你有帮助)。 正确定义键和索引 , 优化您的查询( EXPLAIN
是您的朋友)。 选择一个好的数据库引擎 。
为了从MySQL中获得最好的结果,有很多事情要做。
编辑:一些更多的想法...
数据结构和表格的结构非常重要,以便于编写它们,恢复它们或在两者之间找到折衷方案(取决于用例)。
同样,如果它增长了,你可以使用一个集群 ,在几台机器上的几个MySQL数据库之间进行数据分区(例如使用主从模式),这是另一种选择。
为了提高性能,您还应该考虑在重复查询中使用某种缓存 。
还有类似Vitess的工具可以像NoSQL数据库那样帮助扩展MySQL数据库。
如果PHP / MySQL可以扩展到Facebook的使用,它可以扩展到你的。 这不一定是所有情况下的最佳解决方案,缩放也不是一项简单的任务。
你只有真正开始达到数百万的MySQL限制(如果真的需要的话,仍然可以将它推得更远)。 你可能会看看mysql的分拆,或者如果你使用了数十亿美元,看看像Cassandra这样的东西。
性能明智,PHP不是禁食,但应该足够快。 尝试为耗时的作业使用后台任务/ cron作业,并进行大量缓存。
链接地址: http://www.djcxy.com/p/19749.html