mysql longtext_MySql中LongText类型大字段查询优化
mysql 查询 优化 类型 大字 longtext
2023-06-13 09:11:32 时间
大家好,又见面了,我是你们的朋友全栈君。
在本次项目表结构中,有一个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.cn/146346.html原文链接:https://javaforall.cn
相关文章
- 优化MySQL性能:简单而有效的方法(如何提高mysql性能)
- 数MySQL:查询当前周数方法(mysql获取当前周)
- MySQL单表查询:精准抓取你想要的数据(mysql单表查询)
- ?掌握MySQL数据库:删除表的 DROP 命令(mysql删除表的命令是)
- MySQL 索引优化实践:指定更准确的索引(mysql指定索引)
- 查询探索MySQL经纬度查询的新方式(mysql经纬度)
- MySQL高效查询:轻松实现最快效率(mysql快速查询)
- 提升查询性能MySQL如何利用索引提升查询性能(mysql用索引)
- 文件MySQL导出文本文件的简便方法(mysql导出文本)
- 命名MySQL视图:一步一步实现(mysql视图命名)
- MySQL 分表备份之高效实践(mysql分表备份)
- MySQL补0技巧:实现数据精确度(mysql补0)
- MySQL利用时间触发器实现自动定时任务(mysql时间触发器)
- MySQL查询语句如何获取表名(mysql查询表名)
- MySQL查询:掌握关键字,缩短搜索时间。(mysql查询关键字)
- MySQL调整文件上传限制大小(mysql上传文件大小)
- 提高查询效率,优化数据库——深入理解MySQL关联查询和索引(mysql关联查询索引)
- MySQL字段命名:为什么使用下划线是个好习惯(mysql字段下划线)
- 一步搞定:清空MySQL数据库的快捷命令(清空mysql数据库命令)
- 破解MySQL数据库之:Hint 优化技巧(mysql hint)
- 维护MySQL数据库状态维护:优化稳定运行(mysql 数据库状态)
- 对比分析:MySQL和Oracle的差异(mysql和oracle区别)
- MySQL数据查询的C语言实现(c mysql数据查询)
- Mysql如何实现两表数据的全连接查询(mysql两表数据全连接)
- MySQL数据库如何查询两个日期之间的数据(mysql两耳日期)
- 使用CMD命令查询MySQL密码(cmd查询mysql密码)
- Mysql三个索引abc优化数据库查询效率(Mysql三个索引abc)
- 怎么办MySQL误删数据(mysql不小心删了数据)
- 回顾MySQL上个月15号发生了什么(mysql 上个月15号)
- MySQL查询优化正确理解排序机制(MySQL不是查询时排序)