我做了一个社交网络,测试它在WAMP中显示了将近1500 SQL为一个人的一个会话约30分钟和50页的浏览量!
我不使用ZEND、APC或MEMCACHED --在0.25秒内加载最大的页面-- 512 MB内存,AMD 1.81GHz
Q->可以吗,还是我需要减少SQL ?的数量
. CHILD =‘CHILD 2’>父表和子表的PID主键.
子表ID结构主键PID .
我没有使用外键,但删除on父级也从子元素中删除,我用PHP/SQL做了此操作
Q->可以还是我应该选择外键以获得更好的性能?
在PHP中,我可以配置多少内存Q->我也可以使用MySQL ?,我正在使用WAMP,并且需要在瓶颈状态下监视社交网络的性能!
发布于 2011-03-30 05:40:52
没有人可以说,如果任意数量的SQL查询是可以的:
基本上:使用ab / 围攻 / 千分尺等工具进行一些基准测试;并查看服务器是否能够在未来几周内处理预期的负载。
使用外键通常无助于性能(除非它们强制您设置您需要但不会自己创建的索引):它们在DB端添加了一些额外的工作。
但是使用外键有助于数据的完整性--拥有正常的数据可能比几毫秒更重要,特别是当您刚刚启动应用程序时(这意味着可能会有很多bug)。
发布于 2011-03-30 05:40:24
一般来说,每个页面有30个SQL查询是合理的(实际上,考虑到某些CMS所做的事情,这是相当低的)。另一方面,由于所提供的信息,不可能确定它是否合理的情况下。
外键不会提高性能。外键约束可能。但是,它们也将业务逻辑放入持久性层。这是个优化。
有关配置MySQL内存使用的信息可以在手册7.11.4.1.MySQL如何使用内存部分找到。
发布于 2011-03-30 05:56:14
我同意帕斯卡和奥斯瓦尔德的观点。在用JMeter或类似工具进行测试时,看看您是否真的有问题。
我还会在数据库中加载几百万个测试概要文件,以查看您的查询是否随着时间的推移而减慢。这将有助于优化查询性能。
如果您调整MySQL的目标是引入一个人为的瓶颈来测试应用程序,我会小心地从这些测试中推断出来。你所看到的瓶颈是,它们往往是非线性的-一切都很好,直到你遇到瓶颈时刻,然后一切变得高度不可预测。您不能简单地通过减少数据库服务器的内存来重新创建。
如果有任何低挂的结果,我会减少SQL查询的数量,但每页30个查询并不过分。如果您想要扩展到Facebook级别,我不认为将每页查询从30个减少到28个会有多大帮助--您需要做好准备,将应用程序划分到多个数据库,引入缓存,并购买更强大的硬件。
https://stackoverflow.com/questions/5482239
复制相似问题