Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在MYSQL支持的页面上加载_Php_Mysql_Caching_Indexing_Load Testing - Fatal编程技术网

Php 在MYSQL支持的页面上加载

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是重复的,那么您应该启用的查询缓存可能会缓存它们,因此这些缓存的负

我有一个页面,在每次加载时对2个不同的MYSQL表进行4次SQL调用(2次选择、1次插入和一次更新)

页面是用PHP编写的,没有任何缓存。我预计每个表的大小将增长到大约30000行,并且还没有进行负载测试。SELECT查询将在每个查询中最多提取5行


我可以做些什么来防止db在负载过大的情况下崩溃。将索引添加到与我的查询中引用的列对应的表中会有帮助吗?

首先,30000行不是很多数据;数据库应该能够轻松地处理这么多

如果
SELECT
s是重复的,那么您应该启用的查询缓存可能会缓存它们,因此这些缓存的负载可以忽略不计。您应该在筛选和排序的列上始终具有索引,因此请确保您的查询使用索引

如果您不需要立即从
INSERT
s插入数据,可以使用
INSERT DELAYED
,它将对插入进行排队,直到表未使用为止,并同时插入所有等待的行。除非您希望每秒有多个
INSERT
s,否则使用
INSERT DELAYED
可能不会产生明显的效果

确保
更新
也在使用索引


更具体地说,我们需要更多的信息,比如数据库和代码的结构。

如果您对不经常更改的值运行SELECT,您可以将它们缓存在服务器上,以防止每次对相同的数据运行相同的查询。因为您没有发布任何代码、数据库架构、数据,或者任何对任何人都有用或相关的东西都能给你一个真实的答案。。。那么是的。30k rows是一个小型数据库,假设您已经正确地设计了它和查询,那么一切都将是阳光和彩虹。“我……还没有进行负载测试……我可以做些什么来防止数据库在负载过大的情况下崩溃”您可能应该继续进行负载测试。谢谢。我知道我没有说得太具体,但这正是我想要的信息。