在一个大型社交网站上用PHP实现哪些东西是昂贵的
what things are costly to implement in PHP on a large social networking site?
经常听到应该在"后端"使用c++或Java来提高性能。我相信像Facebook这样的网站有基于c++的"服务"来实现关键性能。
例如:它是在任何时候更有效地取代SQL"SELECT * FROM ...."类型的命令通过PHP传递与其他东西,因为数据库是一个巨大的搜索?
一般来说,有人可以举例说明哪些事情是不应该使用PHP的,即使是在网站的早期阶段
我不是web开发人员,我也不是PHP程序员,这个问题需要更多的讨论,所以让我试试。
在这种超大类型的网站上,你需要智能和高效的算法,而不是高效的语言。谷歌网站的很多代码都是用Python编写的,与PHP相比,Python的速度是一样的。
我认为数据库需要以这样的方式构建:它返回尽可能少的数据,它需要尽可能少的查询次数,并且返回的数据需要尽可能少的处理才能显示。这同样适用于插入。
如果您设法以这种方式设计这样的页面,您的页面将不会是处理器详尽的,这意味着您将使用哪种语言无关紧要。
你也不需要像运行银行那样的防booletproof类型的数据库(100%事务完成,数据库锁定,…)所以你可以平衡可靠性和速度。但为此你需要特殊的数据库。
如何代替"SELECT…" ?数据库越大,就越应该使用SQL。如果访问速度很慢,请检查您使用的查询是否得到索引的良好支持。
你的问题的其余部分属于主观和争论的标题,但从痛苦的经验来看,我根本不会使用PHP来处理任何超出非常小的初始大小的期望。
像facebook这样的网站通常是进步的,经常有很多重写。但是,是的,它们确实经常运行在c++ DLL之类的文件上。SQL虽然是基于字符串的,但速度很快。需要记住的是,有数百种SQL处理软件。SQL是一种语言,不是软件。
是的,我同意,有很多DLL是用c++写的。甚至是在服务器上每秒更新一次的cron作业……但我认为facebook使用了几个数据库,这取决于你的位置,你将连接到该服务器,在数据更新后,自动后端脚本或代码将运行来同步这些数据库,
- 如果没有malloc,链表实现将失败
- 如何在c++中实现处理器调度模拟器
- 如何在c++中使用引用实现类似python的行为
- 实现无开销push_back的最佳方法是什么
- 使用简单类型列表实现的指数编译时间.为什么
- 如何在BST的这个简单递归实现中消除警告
- 实现一个在集合上迭代的模板函数
- 我应该实现右值推送功能吗?我应该使用std::move吗
- 如何正确实现和访问运算符的各种自定义枚举器
- C++Union/Struct位域的实现和可移植性
- 这个极客对极客的trie实现是否存在内存泄漏问题
- 在c++中实现LinkedList时,应出现未处理的错误
- 为左值和右值的包装器实现C++范围
- 使用模板进行堆栈实现; "name followed by :: must be a class or namespace"
- 使用GSoap实现ONVIF
- 在用于格式4的arm模拟器中实现功能时的一个问题
- 算法实现与 C++ 和 PHP 进行比较
- 如何在c++中高效地实现PHP字符串索引数组
- 如何在Windows上实现c++和PHP之间的通信
- 在一个大型社交网站上用PHP实现哪些东西是昂贵的