mysql - 有效地将大约 20kb 的文本重新保存到 mysql

标签 mysql performance post diff

我有一个 contenteditable div,用户可以在其中输入最多约 20kb 的文本。当他们打字时,我想将该 div 自动保存到 mysql 表中,以便他们以后可以在他们的手机、平板电脑等上检索该文本。到目前为止,我只是每 20 秒自动保存一次,方法是获取整个文本 block 并执行更新我的表中包含该文本的行。

我意识到这种方法效率很低,一旦我的用户群增长,它就不会奏效。有一个更好的方法吗?例如,以某种方式在原始文本和更改的内容之间进行差异并仅保存?使用 node.js?如果你有什么想法,请告诉我。谢谢。

最佳答案

并非所有文本都是 20kb,因此不需要直接出现问题。您还可以选择不那么频繁地自动保存,也可以自动保存到 session 中,并且只不太频繁地写入数据库。

您可以计算存储版本(也可以保存在 session 中)和键入版本之间的差异。优点是您不必经常使用数据库,但处理会变得更加困难,因此您的网络服务器上的负载也会增加。

我可能会选择自动保存到内存表(您可以在 MySQL 中选择存储类型),并编写一个单独的进程/cron 作业,定期批量更新物理表。

关于mysql - 有效地将大约 20kb 的文本重新保存到 mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7477013/

相关文章:

python - 如何提高 Cython 的性能?

multithreading - 原子内存排序性能差异

javascript - 什么在数据消耗方面更有效率。获取还是发布?

php - 如何使用 Eloquent 从 Lumen 数据库中获取数据?

php - 双引号内的类数组

mysql - 字符串作为主键的性能损失?

python - 在 Django 查询集中加入以过滤它

sql-server - 如何找出是什么在影响我的 SQL Server?

python - 如何使用 Python Requests 模块模拟 HTTP 发布请求?

javascript - 使用 Greasemonkey 进行跨域发帖?