zoukankan      html  css  js  c++  java
  • BLOB和TEXT

    区别:

    BLOB存储的是二进制数据,没有排序规则或字符集。

    TEXT存储的是字符,有排序规则和字符集。

    因为Memory引擎不支持BLOB和TEXT类型,最好的解决方案避免使用BLOB和TEXT类型。如果实在无法避免,一般是在所用到的BLOB字段的地方都使用substring(列名,长度),将

    列值转换为字符串(在ORDER BY子句中也可以适用),这样就可以使用内存临时表了。但要确保截取的字符串足够短,不会使临时表的大小超过max_heap_table_size或tmp_table_size,超过以后MySQL会将内存临时表转换为MyISAM磁盘临时表。

    如:

    有一个表有1000W行的数据,占用5G的磁盘空间。其中有一个utf8字符集的VARCHAR(1000)列。每个字符最多使用3个字节,最坏情况下需要3000字节的空间。

    如果在ORDER BY中用到这个列,并且查询扫描整个表,为了排序就需要超过30GB的临时表。

    如果Explain执行计划的Extra列包含“Using temporary”,则说明查询使用了隐式临时表。

  • 相关阅读:
    命令行标签
    ts关键还是js 因为要编译成js
    nuxt axios
    vuecli3-ssr
    v-text
    这样竟然也可以水平居中 两个属性都必须
    纯CSS实现垂直居中的几种方法
    下图片异步变同步
    [Java] 扯淡系列_找工作流程 与 注意问题
    [Java] Spring3.0 Annotation
  • 原文地址:https://www.cnblogs.com/chinaops/p/10605216.html
Copyright © 2011-2022 走看看