Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >MySQL LONGTEXT分页

MySQL LONGTEXT分页
EN

Stack Overflow用户
提问于 2012-09-22 11:15:21
回答 1查看 349关注 0票数 2

我有包含LONGTEXT的表格帖子。我的问题是,我想检索特定帖子的一部分(基本上是分页)。

我使用以下查询:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT SUBSTRING(post_content,1000,1000) FROM posts WHERE id=x

这在某种程度上是好的,但问题是位置和长度。大多数时候,第一个单词和最后一个单词是不完整的,这是有意义的。

如何从位置x检索长度为y的完整单词?

EN

回答 1

Stack Overflow用户

发布于 2012-09-22 12:15:33

您这样做的目的可能是为了节省MySQL服务器和运行应用程序的机器之间的网络流量开销。实际上,您并没有在MySQL服务器上保存任何其他类型的工作负载。它必须从磁盘获取LONGTEXT项,然后通过SUBSTRING运行它。

根据可靠的性能分析,您可能已经决定必须保存此网络流量。既然您知道这个分析并不能节省太多的MySQL服务器工作负载,那么您可能想要重新审视它。你的节省将是微不足道的,除非你有无数的非常长的LONGTEXT项目和大量的流量来检索和显示它们的一部分。

换句话说,这是一个优化任务。YAGNI?http://en.wikipedia.org/wiki/YAGNI

如果您确实需要它,您将不得不创建软件来逐字处理LONGTEXT项。你最好的办法就是在你的客户端软件中做到这一点。从检索第一页开始,加上文章的k或两个部分。然后,解析文本以查找完整的单词。在第一页中找到最后一个完整的单词及其后面的空格之后,该字符位置就是下一页的开始位置。

在MySQL存储过程中,这类任务是一个巨大的难题。此外,当您在存储过程中执行此操作时,将在共享且难以扩展的资源( MySQL服务器计算机)上使用处理周期,而不是在可克隆的客户端计算机上使用处理周期。

我知道我没有给你干净的代码让你按你说的做。但这显然不是一个好主意去做你所建议的。

编辑

一个观察结果是:1 of的服务器内存大约需要USD20。像memcached这样的缓存系统在有效利用USD100价值的内存方面做得很好。对于您所描述的用例来说,这已经足够了。

另一个观察结果是:许多为大型文档提供服务的公司使用文件系统而不是DBMS来存储这些文档。文件系统可以很容易地在内容服务器之间共享或复制,并且文件可以被随机访问,而不需要任何开销。

将整本书存储在单个BLOB或CLOB中有点创新。如果你能把书分成几个部分--页面?章节?千字块?--并为每个段创建单独的数据行,您的DBMS将比您所描述的更好地扩展。

如果你无论如何都要这么做,下面就是你要做的:

  1. 在每个段中检索的字符总是比所需的多100个字符。例如,当您需要字符30000 - 35000时,请检索30000 -35100。检索段后,在数据中查找第一个分词符(第一个分词符除外),并从该word.
  2. similarly,开始显示在额外的100个字节中找到第一个分词符,并显示到该分词符。

因此,您获取的数据可能是30000 - 35100,显示的数据可能是30013 - 35048,但它可能是完整的单词。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12543247

复制
相关文章
eval解析json字符串
场景:在springMVC,手动拼接的list,转成本json字符串后,传到前台,
河岸飞流
2019/09/11
1.1K0
JSON.parse()与eval()的区别
JSON.parse与eval和能将一个字符串解析成一个JSON对象,但还是有挺大区别。
JaneYork
2023/10/11
2700
CompletableFuture真香,可以替代CountDownLatch!
Future相当于一个占位符,代表一个操作将来的结果。一般通过get可以直接阻塞得到结果,或者让它异步执行然后通过callback回调结果。
xjjdog
2021/09/17
1.5K0
fencedframe 可以替代 iframe 吗?
今天继续聊 浏览器策略 ,这是我 「浏览器策略解读」 专栏的第 35 篇文章了,感谢读者们一如既往的支持!
ConardLi
2022/05/23
2.3K0
fencedframe 可以替代 iframe 吗?
Linux Lite 5.4 可以在您的 PC 上替代 Windows 10
原文:https://www.linuxmi.com/linux-lite-5-4.html
逆锋起笔
2021/04/26
3K0
Linux Lite 5.4 可以在您的 PC 上替代 Windows 10
JSON必知必会阅读
阅读了一下JSON必知必会,由于日常使用JSON比较多,所以文中内容大部分都已经接触过了,大概通读全书耗时1h左右 PDF地址:链接:https://pan.baidu.com/s/1iZQLR1zGJbH9Eoq3t_GYFQ 密码:x4lv
zx钟
2020/02/25
8020
eval在python中是什么意思_如何在Python中使用eval ?
在Python中,我们有许多内置方法,这些方法对于使Python成为所有人的便捷语言至关重要,而eval是其中一种。eval函数的语法如下:
全栈程序员站长
2022/11/17
3.4K0
使用httpstat替代curl,结果更易于阅读
可以看到httpstat 自动把访问的结果存到/tmp/下的临时文件了,并且给出了每个阶段的耗时情况。
保持热爱奔赴山海
2023/09/23
2950
ArrayList 可以完全替代数组吗?
在前面的文章里,我们学习了很多数据结构与算法思想。在实际的业务开发中,往往不需要我们手写数据结构,而是直接使用标准库的数据结构 / 容器类。
用户9995743
2022/12/22
7520
ArrayList 可以完全替代数组吗?
在模版类里使用自己时可以省略模版参数
用户10551528
2023/10/18
1200
在模版类里使用自己时可以省略模版参数
javascript:巧用eval函数组装表单输入项为json对象
在ajax方式做web开发时,经常会遇到会保存前,收集表单输入项,组成json对象,然后把对象直接post到服务端的场景 常规做法是在js里写类似如下的代码: var myObj = {}; myObj.x = document.getElementById("x").value; myObj.y = document.getElementById("y").value; //... //然后ajax post或get提交 表单元素不多的时候,这样还好,但是如果一个表单有好几十项甚至
菩提树下的杨过
2018/01/24
1.5K0
程序员在大数据面试时的争议:Spark能替代Hive?
本文作者:曾就职传统通讯运营商,负责BI项目的开发;目前转型互联网公司,就职于某厂负责相关的大数据仓库建设工作。
养码场
2018/10/18
1K0
程序员在大数据面试时的争议:Spark能替代Hive?
nodejs写入json文件_json文件可以删除吗
哈喽!nodejs的文件系统,接触过node的对node的文件系统肯定不会陌生,这两天我就在思考一个问题,我是否可以在本地操作我的本地json文件,这样一个本地的文本数据库就有了,如果是便签之类,记录的软件,我完全可以不用连后台的数据库,我可以自己操作本地的json文件,自己用node写后台,答案是肯定的,下面我们就一起来实现一下吧,对本地json文件的增、删、改、查
全栈程序员站长
2022/11/04
2.9K0
nodejs写入json文件_json文件可以删除吗
golang源码阅读:test2json
go test加参数-json就能输出 json格式,下面我们用一个简单的例子看下对他进行分析,然后分析下相关源码。对于单测
golangLeetcode
2023/09/06
1780
golang源码阅读:test2json
12个可以替代jenkins的CI/CD工具
Jenkins是一个开源的持续集成平台,是DevOps生命周期中的一个重要工具。但是,与当前的用户界面趋势相比,它的界面已经过时,用户界面也不够友好(苦叶子推荐你用script pipeline: Jenkins之jenkinsfile基础)。此外,Jenkin配置可能比较复杂,而且它还有许多其他缺点。
苦叶子
2020/02/25
12.1K0
12个可以替代jenkins的CI/CD工具
linux eval
eval 就是执行以下两个步骤 1.第一次,执行变量替换,类似与C语言的宏替代
雪影
2018/08/02
9090
电子阅读out,VR/AR带你走进阅读3.0时代
近日,南非一家公司启动了一项名为Kickstarer的计划,其目标是在AR技术的支持下生产一系列儿童书籍。该系列的第一本书已经开始制作,内容灵感则源自经典读物《格林童话》。该书讲述了Hansel和Gr
VRPinea
2018/05/16
7810
Python - eval()
eval 的作用域就是 g 指定的这个字典,外面的 x = 10 被屏蔽掉了,eval 是看不见的,所以使用了 x 为 5 的值
小菠萝测试笔记
2021/09/14
9030
一些原生写法可以替代Jquery方法
jQuery的核心是通过各种选择器,选中DOM元素,可以用querySelectorAll方法模拟这个功能。
javascript.shop
2019/09/04
2.1K0
Fastjson解析JSON时乱序解决
默认解析json字符串时序列化是无序的,而有些场景下需要按前台传过来的顺序 解析时传入参数Feature.OrderedField可保持有序 JSONObject jsonObject = JSONObject.parseObject(jsonData, Feature.OrderedField); List<LinkedHashMap> templateMap = JSON.parseArray(jsonObject.getString("jsonValue"), LinkedHashMap.class
4xx.me
2022/06/09
1.4K0

相似问题

无法获取Swift存储桶中的文件/对象列表;iOS - S3

164

iOS: UITableViewCell在Swift中的垃圾桶删除按钮

17

从s3桶中删除文件

64

从S3桶中删除空文件

22

删除S3中的桶

32
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文