mysql如何存储大段文字

  

mysql如何存储大段文字?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

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

(推荐教程:mysql数据库学习教程)

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

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

合成的散列索引对于那些BLOB或文本数据列特别有用。用散列标识符值查找的速度比搜索BLOB列本身的速度快很多。

create  table  t_synthetic  (id  VARCHAR (100), context  BLOB, hash_value  VARCHAR (40));   insert  into  t_synthetic 值(1 & # 39;beijingbeijing& # 39;, md5(上下文));   insert  into  t_synthetic 值(2,重复(& # 39;北京# 39;2),md5(上下文));   insert  into  t_synthetic 价值(3,重复(& # 39;beijing  2008 & # 39; (2), md5(上下文));   SELECT  *,得到t_synthetic  where  hash_value =, MD5(重复(& # 39;北京# 39;2));

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

CREATE  INDEX  idx_blob 提醒t_synthetic(上下文(100));   desc  select  *,得到t_synthetic  where  context  like  & # 39;北京% & # 39;

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

看完上述内容,你们掌握mysql如何存储大段文字的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

mysql如何存储大段文字