一般在保存少量字符串的时候,我们会选择 CHAR 或者 VARCHAR;而在保存较大文本时,通常会选择使用 TEXT 或者 BLOB,二者之间的主要差别是 BLOB 能用来保存二进制数据,比如照片;而 TEXT 只能保存字符数据,比如一篇文章或者日记。

TEXT 和 BLOB 中有分别包括TEXT、MEDIUMTEXT、LONGTEXT 和 BLOB、MEDIUMBLOB、LONGBLOB3 种不同的类型,它们之间的主要区别是存储文本长度不同和存储字节不同,用户应该根据实际情况选择能够满足需求的最小存储类型。

BLOB 和 TEXT 值会引起一些性能问题,特别是在执行了大量的删除操作时.可以使用合成的(Synthetic)索引来提高大文本字段(BLOB 或 TEXT)的查询性能;如果散列算法生成的字符串带有尾部空格,就不要把它们存储在 CHAR 或 VARCHAR 列中,它们会受到尾部空格去除的影响。

合成的散列索引对于那些 BLOB 或 TEXT 数据列特别有用。用散列标识符值查找的速度比搜索BLOB列本身的速度快很多。create table t_synthetic (id varchar(100),context blob,hash_value varchar(40));

insert into t_synthetic values(1,'beijingbeijing',md5(context));

insert into t_synthetic values(2,repeat('beijing',2),md5(context));

insert into t_synthetic values(3,repeat('beijing 2008',2),md5(context));

SELECT * from t_synthetic where hash_value = MD5(repeat('beijing',2));

合成索引的用法,由于这种技术只能用于精确匹配,在一定程度上减少 I/O,从而提高查询效率。如果需要对 BLOB 或者 CLOB 字段进行模糊查询,MySQL 提供了前缀索引,也就是只为字段的前 n 列创建索引,举例如下CREATE INDEX idx_blob ON t_synthetic(context(100));

desc select * from t_synthetic where context like 'beijing%'

在不必要的时候避免检索大型的 BLOB 或 TEXT 值。把 BLOB 或 TEXT 列分离到单独的表中。

mysql+存储一段文字_mysql怎么存储大段文字相关推荐

  1. mysql的存储引擎详解_MySQL常见存储引擎详解

    通过执行show engines命令查看MySQL中支持哪些存储引擎 MySQL存储引擎属性对比 设置表的存储引擎的方法 在my.cnf配置文件中设置default-storage-engine参数表 ...

  2. mysql怎么存照片信息_mysql怎么存储图片信息?

    方法一: 把照片放进数据库,照片的格式最好是bmp,这样就可以在窗体上显示出来,不过这样数据库的体积会暴增. 详细的使用方法请参考Access帮助中的 PictureData 属性(本文末尾有相关帮助 ...

  3. mysql 表情符号 用什么类型_mysql如何存储表情符号

    您在这里混的API,mysql_*并且mysqli_*不混合.您应该坚持使用mysqli_(无论如何看起来还是这样),因为mysql_*不赞成使用函数,并且在PHP7中将其完全删除了. 您的实际问题是 ...

  4. mysql除去一段字符串_mysql如何除去一段字符串

    mysql除去一段字符串的方法:1.从左开始截取字符串,代码为[left(str, length)]:2.从右开始截取字符串,代码为[right(str, length)]:3.截取字符串,代码为[s ...

  5. 修改mysql表的字段名_mysql中修改表字段名/字段长度/字段类型详解

    在mysql中我们对数据表字段的修改命令只要使用alter就可以了,下面我来给大家详细介绍mysql中修改表字段名/字段长度/字段类型等等一些方法介绍,有需要了解的朋友可参考. 先来看看常用的方法 M ...

  6. Mysql修改字段名和长度_mysql中修改表字段名/字段长度/字段类型详解

    先来看看常用的方法 MySql的简单语法,常用,却不容易记住.当然,这些Sql语法在各数据库中基本通用.下面列出: 1.增加一个字段: alter table user add COLUMN new1 ...

  7. mysql为字段添加索引_Mysql优化-为表字段添加索引

    Java基础---AWT 流式布局FlowLayout package net.zyz; import java.awt.Button; import java.awt.FlowLayout; imp ...

  8. mysql longtext可以存储多少文字_MySQL 四万字精华总结 + 面试100 问,和面试官扯皮绰绰有余(收藏系列)

    作者:派大新 链接:https://juejin.im/post/5f0d4fadf265da22f3250eaa 写在之前:不建议那种上来就是各种面试题罗列,然后背书式的去记忆,对技术的提升帮助很小 ...

  9. mysql innodb和myisam区别_MySQL?存储引擎简介

    ​大家好,我是anyux.本文介绍MySQL存储引擎. 简介 相当于Linux文件系统,只不过比文件系统强大 功能 数据读写 数据安全和一致性 提高性能 热备份 自动故障恢复 高可用方面支持 引擎类别 ...

最新文章

  1. Gated Convolution
  2. 【项目合作】最高50万元!道路缝隙检测、目标跟踪优化、机器人平台开发
  3. ios把数据传递到另一个页面_iOS 应用之间的跳转和数据传递
  4. Python分析热门话题“不生孩子的人后来都怎么了”,看看丁克家庭最后都怎么样了...
  5. java property类_Java之Property类使用
  6. python自动数据结构_Python 数据结构
  7. 无烟会议室:CMMI vs. Scrum vs. XP(QCon 2010 感受)
  8. ostringstream使用
  9. python100例详解-几个小例子给你讲解Python中类的描述符
  10. php对象在内存中的分配
  11. php 中国姓名验证规则,我想在表单验证中加入中文姓名合法性模糊匹配判断?...
  12. matlab绘制三维机翼,三维机翼某一断面的压力系数X-Y曲线绘制——使用tecplot的extract功能...
  13. Eth Transfer
  14. 【多任务CTR】阿里ESMM:Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conve
  15. LTE网络CQI机制
  16. 上周NFT销售CryptoPunk囊括前三
  17. 线性回归假设条件及残差检验
  18. spring-retry框架使用说明
  19. 生物信息学Bioinformatics学习笔记(三)-高通量测序
  20. C#打造机械耳感键盘(全局监听键盘并设置音效)

热门文章

  1. SONY业务重组 将实现“一个SONY”的商业理念
  2. 【线性代数(8)】矩阵行列式、伴随矩阵、逆矩阵
  3. Java的fia_acca报考条件之一的FIA到底是什么?
  4. java actor_Java并发之actor模型
  5. 云计算IaaS、PaaS(iPaaS/aPaaS)以及SaaS以及发展趋势
  6. 分块传输的请求次数与客户端/服务端工作过程
  7. 道德三皇五帝,功名夏后商周.(中英文版)
  8. android的IPC机制
  9. 星光不负赶路人 | 第2期个人能力认证考核通过名单公布
  10. caffe2安装步骤