mysql longtext_MySql中LongText类型大字段查询优化

mysql longtext_MySql中LongText类型大字段查询优化在本次项目表结构中,有一个longtext字段,用于存储长文本,仅万条数据,InnoDB存储文件就达G级,由于是一个小项目,受限于服务器与运维人员水平,不适合使用hdfs,MongoDB等拓展技术栈来解决这种问题,因此直接对mysql存储进行优化,快速解决,利于维护。涉及mysql基础知识一、innodb存储引擎的处理方式1.mysql在操作数据的时候,以page为单位不管是更新,插入,删除一行数…

大家好,又见面了,我是你们的朋友全栈君。

在本次项目表结构中,有一个longtext字段,用于存储长文本,仅万条数据,InnoDB存储文件就达G级,由于是一个小项目,受限于服务器与运维人员水平,不适合使用hdfs,MongoDB等拓展技术栈来解决这种问题,因此直接对mysql存储进行优化,快速解决,利于维护。

涉及mysql基础知识

一、innodb存储引擎的处理方式

1.mysql在操作数据的时候,以page为单位

不管是更新,插入,删除一行数据,都需要将那行数据所在的page读到内存中,然后在进行操作,这样就存在一个命中率的问题,如果一个page中能够相对的存放足够多的行,那么命中率就会相对高一些,性能就会有提升

2.innodb的page大小默认为16kb

innodb存储引擎表为索引组织表,树底层的叶子节点为一双向链表,因此每个页中至少应该有两行记录,这就决定了innodb在存储一行数据的时候不能够超过8k,但事实上应该更小,有一些InnoDB内部数据结构要存储以及预留操作空间,

3.blob,text大字段

innodb只会存放前768字节在数据页中,而剩余的数据则会存储在溢出段中(发生溢出情况的时候适用),最大768字节的作用是便于创建前缀索引/prefix index,其余更多的内容存储在额外的page里,哪怕只是多了一个字节。因此,所有列长度越短越好

4.扩展存储禁用了自适应哈希

因为需要完整的比较列的整个长度,才能发现是不是正确的数据(哈希帮助InnoDB非常快速的找到“猜测的位置”,但是必须检查“

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/146346.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • html content属性_HTTP函数

    html content属性_HTTP函数关于HttpEntity的用法HttpEntity表示http的request和resposne实体,它由消息头和消息体组成。从HttpEntity中可以获取http请求头和回应头,也可以获取http请求体和回应体信息。HttpEntity的使用,与@RequestBody、@ResponseBody类似。HttpEntity的典型应用是配合RestTemplate,在微服务项目中的应用(参见API示例)用户登录示例:步骤一:在login.jsp发送ajax请求,发送之前添加请求头信息

    2025年8月14日
    2
  • Java网页版仿QQ实现在线聊天功能(附带源码)[通俗易懂]

    Java网页版仿QQ实现在线聊天功能(附带源码)[通俗易懂]疫情期间,整天闷在家里又不能聚会,大把的空余时间差点让我发霉,后来有个客户发来新年祝贺,情不自禁想起了一件事情,就是他曾经提起过,要是在后台管理系统里面整合个聊天功能该多好啊,有了这个念头,马上行动起来!!!一.系统演示1.1聊天窗体主界面演示1.2模拟两人在线聊天(点击图片查看演示视频)1.3在线演示(真实系统展示)在线演示,点击进入系统到这里,若是您想要的,接下来听我娓娓道来↘↘二.开发工具开发软件:JDK7.0、MyEclipse2014数据库:MySQL5.6服

    2022年5月15日
    47
  • Java取绝对值(绝对值函数的使用方法)

    在Java中可以使用Math.abs()方法来方便的进行绝对值计算,例如:输入的是正数的时候直接返回即可,当是负数的时候返回它的相反数即可。使用三目运算符可以使用一行代码就能做到intvalue=Math.abs(-90);System.out.println(value);System.out.println(“*********”);inta=-59;System.out.println((a<0)?-a:a);…

    2022年4月17日
    53
  • SQL之视图与索引[通俗易懂]

    SQL之视图与索引[通俗易懂]SQL之视图与索引视图的定义、修改、使用索引的创建、查看视图人们在使用数据库时,并不是直接对数据源表进行操作,通常人们只关心源表的部分数据,因此为了使得用户在查询时方便,用不着在每次查询时都编写复杂的代码(比如连接等),可以事先将用户要使用的查询结果通过视图定义在数据库中,这样人们在进行查询时只需查看视图即可,简化了用户的操作,同时使得数据同源数据分离,提高了安全性。1.视图的创建语法:

    2022年7月22日
    12
  • C语言实现五子棋小游戏

    C语言实现五子棋小游戏三子棋,五子棋,无论多少子棋,其原理都是一样的。下面我用五子棋为例讲解用C语言多文件编程实现五子棋。设计电脑和玩家两个作为下棋的两方,用键盘输入作为玩家的游戏操作。1.效果图:程序总的构架:我们只要输入坐标就可以和电脑对弈了。电脑的棋子用‘0’表示,玩家的棋子用‘x’表示。2.打印菜单可以根据自己的爱好设计各种风格的…

    2022年5月12日
    44
  • Opengl Lesson 1 心形曲线

    Opengl Lesson 1 心形曲线今天我们开始学习 Opengl 编程 在学习之前 我们要开始配置 Opengl 我这里使用的是 VS2010 语言是 C Opengl 是 C 的一个拓展包 用来进行计算机图形方面的编程 Opengl 实用工具库 OpenglUtilit GLUT 是独立于窗口系统的工具包 可以隐藏不同窗口系统 API 所带来的复杂性 所以这里我们首先要去下载 freeg

    2025年11月17日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号