MySql对大型数据库有用吗?

jer*_*rry 11 php mysql database

我在一家公司工作,我们总是访问外部网站获取信息.该网站由一家过时的软件开发公司开发,该公司甚至没有网站.由于数据库的内容提供商仅使用这个极其功能失调的网站来上传他们的数据,因此他们几乎在我的州拥有垄断权.这个网站的问题是它很慢,甚至没有功能.

控制连接速度和浏览器类型之类的东西很明显,问题在于网站本身.因此,我正在考虑重做网站,然后将其提供给内容提供商,作为上传数据的方法.基本上,这个项目需要一个非常大的数据库来存储数十万个名称,地址和其他类型的数据.

我对数据库的唯一体验是MySql,而我对动态内容的唯一体验就是PHP.所以,是的,我正在试图弄清楚旧的PHP + MySQL组合是否适合存储和表示大量数据.我只在小项目上做过这个,但我认为带有动态内容占位符的整个HTML模板都可以正常工作.

当然,我真的不知道为什么这个网站这么慢.也许它根本不是数据库.也许是服务器或其他东西.但我想要完成的关键是改善这个网站的速度和功能.我没有其他类型的数据库的经验,所以你可以提供任何提供这样的项目的提示/建议将非常感谢.此外,关于如何通常建立一个需要代表来自极大数据库的动态数据的快速且功能性站点的任何提示也会有所帮助.

*编辑:我正在学习python,所以如果你认为这将是一个更好的副脚本语言,那么我当然可以尝试实现与上面的初始计划不同的东西.

pco*_*ion 15

如果你做了一个好的设计,你可以在MySQL中拥有非常大的数据库(这个问题可能对你有所帮助).正确定义索引,优化您的查询(这EXPLAIN是您的朋友).选择一个好的数据库引擎.

要从MySQL中获得最佳效果,还有很多工作要做.

编辑:一些更多的想法......

构建数据和表格的方式也非常重要,以便于编写,恢复或在两者之间找到折衷方案(取决于用例).

此外,如果它增长,你可以使用集群,在几台机器中的几个MySQL数据库之间划分数据(例如使用主从模式),这是另一种选择.

为了提高性能,您还应该考虑使用某种缓存来进行重复查询.

还有像Vitess这样的工具,它们以与NoSQL数据库类似的方式帮助扩展MySQL数据库.


cee*_*yoz 12

如果PHP/MySQL可以扩展到Facebook的使用,它可以扩展到你的.它不一定是适用于所有情况的最佳解决方案,也不一定是一个简单的任务.

  • 抱怨MySQL性能时许多人错过的最重要的事情之一就是索引.在没有索引和索引的情况下查询具有几万条线的表会产生巨大的差异,从慢速服务器上的几秒到几毫秒(在旧的pentium2 266 MHz上运行;)).使用索引,它仍然使用php/MySQL闪电般快速. (2认同)

Has*_*der 5

是的,您可以使用 PHP 和 MySQL 创建大型应用程序。您还需要使用其他一些辅助工具,这将有助于扩展您的应用程序,例如负载均衡器。

现在的问题是你不能通过默认安装 MySQL 本身来做到这一点。您需要了解如何平衡多台服务器上的负载。然后是如何使用集群或者分片。因此,只要您的系统是在可扩展架构之上开发的,您就可以做任何事情。

当您刚刚部署第一个版本时,不要开始担心数百万条记录。缩放是逐渐发生的。您无法部署仅在一天内即可扩展的应用程序。你必须日复一日地优化它。记住 Donald Knuth 的名言“过早优化是万恶之源”

像 HighScalability 这样的网站可以帮助您了解在 LAMP 堆栈之上设计更好的架构:)

=H=

  • 这句话出自唐纳德·高德纳 (Donald Knuth) 之口,而不是马丁·福勒 (Martin Fowler)(他可能引用了唐纳德·高德纳 (Donald Knuth) 的话)。 (2认同)