Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.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
Mysql 以状态存储大量数据?_Mysql_Reactjs - Fatal编程技术网

Mysql 以状态存储大量数据?

Mysql 以状态存储大量数据?,mysql,reactjs,Mysql,Reactjs,我正在建立一个简单的论坛,试图一步一个脚印。第一步只是尝试将从数据库获取的数据获取到页面上。但是,从长远来看,我会问自己,当我从数据库中获取所有记录并将其设置为状态,然后在页面视图中显示时,这是正确的方法吗 我之所以担心这一点,是因为从长远来看,如果我让我们有20000个论坛帖子,那么所有20k的记录都会存储在我的状态中,存储在我从数据库获取的数组中 我读过关于使用redux的文章,但我不喜欢使用这种方法,因为我还在学习react,我只是想知道他们的方法是否更好 另外,我的假设是我采取了正确的方

我正在建立一个简单的论坛,试图一步一个脚印。第一步只是尝试将从数据库获取的数据获取到页面上。但是,从长远来看,我会问自己,当我从数据库中获取所有记录并将其设置为状态,然后在页面视图中显示时,这是正确的方法吗

我之所以担心这一点,是因为从长远来看,如果我让我们有20000个论坛帖子,那么所有20k的记录都会存储在我的状态中,存储在我从数据库获取的数组中

我读过关于使用redux的文章,但我不喜欢使用这种方法,因为我还在学习react,我只是想知道他们的方法是否更好

另外,我的假设是我采取了正确的方法,但是我一次只能加载10-20次,直到用户请求查看更多

这是我的密码:

模型:(此查询显然将被更改,我只是尝试将数据放入我的页面以确保其正常工作。)

我想这更多的是寻求建议问题,而不是在我不确定的代码中寻求帮助

var db=require('../dbconnection');
var forumPage={
postTopic:函数(数据、回调){
var datetime=新日期();
var createdDate=datetime.getFullYear()+'-'+(datetime.getMonth()+1)+'-'+datetime.getDate()
db.query(“插入论坛主题集主题名称=?,主题消息=?,创建日期=?”,[data.questionTitle,data.questionBody,createdDate],回调);
},
选择主题:函数(数据、回调){
db.query(“按创建日期描述从论坛主题顺序中选择*”,回调);
}
}

module.exports=forumPageRedux不会帮助您在您所在的州减少存储量。如果你有一个论坛,通常你会有不同的子论坛和线程下面。如果需要的话,每个线程都有多个页面,所以您不需要一次显示超过50篇文章。您可以查询和拆分数据库中的内容,然后只存储用户在状态中看到的部分。如果您只是选择所有内容,然后将其置于状态,那么在数据库中没有任何意义

我不确定您使用的是什么版本的sql,因此语法可能会有所不同,但我对一个有时有数十万页的表做了类似的操作。我只需要将页码存储在state中,然后在sql中的limit语句中使用它

例如,如果您更改select语句,并按发布日期排序,然后限制0、10、10、10、20、10等,那么您将永远不需要在您所在的州存储超过10篇文章,并且它们将始终以相同的顺序返回到您论坛线程的每个页面

this.state = {
  thread: 'my cool topic',
  limit: 20,
  index: 0,
  pages: 0
}
当您进行第一次查询时,您可以进行计数,以了解您应该在列表中呈现多少页面。然后,您只需按限制和索引进行查询,并根据用户操作在您的状态中增加它


关键是从您所在的州生成查询。您当前使用的方法根据查询构建状态。

过早优化是万恶之源。你开始了,不要担心那种大的情况。如果您获得了20k个帖子,您可能无法一次获取所有帖子,而且对于大量内存中的数据,可以使用性能更好的普通数组替代。但是,请采纳您自己关于redux的建议,并将其应用于此。当你读到19997年的文章时,你可能会对该做什么有更好的想法:)我不知道。好的,谢谢你的建议,我在构建应用程序时会考虑到这一点,并担心以后的效率低下。非常感谢。这是后端应该面临的技术挑战。不是前端。尝试预先加载那么多数据似乎有点愚蠢。你甚至不能在一个页面上有意义地呈现那么多的数据。我看没问题,所以更多的是修改我的查询并使其正确,然后在此基础上构建我的状态。我会考虑这一点。谢谢你的建议,没错!祝你好运