Php 在MYSQL支持的页面上加载
我有一个页面,在每次加载时对2个不同的MYSQL表进行4次SQL调用(2次选择、1次插入和一次更新) 页面是用PHP编写的,没有任何缓存。我预计每个表的大小将增长到大约30000行,并且还没有进行负载测试。SELECT查询将在每个查询中最多提取5行Php 在MYSQL支持的页面上加载,php,mysql,caching,indexing,load-testing,Php,Mysql,Caching,Indexing,Load Testing,我有一个页面,在每次加载时对2个不同的MYSQL表进行4次SQL调用(2次选择、1次插入和一次更新) 页面是用PHP编写的,没有任何缓存。我预计每个表的大小将增长到大约30000行,并且还没有进行负载测试。SELECT查询将在每个查询中最多提取5行 我可以做些什么来防止db在负载过大的情况下崩溃。将索引添加到与我的查询中引用的列对应的表中会有帮助吗?首先,30000行不是很多数据;数据库应该能够轻松地处理这么多 如果SELECTs是重复的,那么您应该启用的查询缓存可能会缓存它们,因此这些缓存的负
我可以做些什么来防止db在负载过大的情况下崩溃。将索引添加到与我的查询中引用的列对应的表中会有帮助吗?首先,30000行不是很多数据;数据库应该能够轻松地处理这么多 如果
SELECT
s是重复的,那么您应该启用的查询缓存可能会缓存它们,因此这些缓存的负载可以忽略不计。您应该在筛选和排序的列上始终具有索引,因此请确保您的查询使用索引
如果您不需要立即从INSERT
s插入数据,可以使用INSERT DELAYED
,它将对插入进行排队,直到表未使用为止,并同时插入所有等待的行。除非您希望每秒有多个INSERT
s,否则使用INSERT DELAYED
可能不会产生明显的效果
确保更新
也在使用索引
更具体地说,我们需要更多的信息,比如数据库和代码的结构。如果您对不经常更改的值运行SELECT,您可以将它们缓存在服务器上,以防止每次对相同的数据运行相同的查询。因为您没有发布任何代码、数据库架构、数据,或者任何对任何人都有用或相关的东西都能给你一个真实的答案。。。那么是的。30k rows是一个小型数据库,假设您已经正确地设计了它和查询,那么一切都将是阳光和彩虹。“我……还没有进行负载测试……我可以做些什么来防止数据库在负载过大的情况下崩溃”您可能应该继续进行负载测试。谢谢。我知道我没有说得太具体,但这正是我想要的信息。