zoukankan      html  css  js  c++  java
  • MySQL中的数据类型选择、使用合成索引

    1. char 和 varchar     保存少量字符串

    char 固定长度的字符类型,varchar 可变长度的字符类型,在MyISAM和MEMORY中推荐char  , 在InnoDB中推荐varchar

    2. text 和 blob     保存较大的文本

    text 只能保存字符数据,而BLOB能用来保存二进制数据(图片等)

    optimize table t;

    在InnoDB 引擎中,optimize语句被自动转换为recreate+analyze语句。

     可以使用合成索引(Synthetic)来提高大文本字段(BLOB或TEXT)的查询性能,

    合成索引就是根据大文本字段的内容建立一个散列值,并把这个值存储在单独的数据列中,接下来就可以通过检索散列值快速找到数据,值得注意的是,这种技术只能用于精确匹配的的查询。数值型散列值可以高效率的存储。

    CREATE TABLE t9 (id VARCHAR(100),context BLOB,hash_value VARCHAR(40))
    CREATE INDEX idx_hash_value ON t9 (hash_value)
    INSERT INTO t9 VALUES(1,REPEAT('beijing',2),MD5(context))
    INSERT INTO t9 VALUES(2,REPEAT('beijing',2),MD5(context))
    INSERT INTO t9 VALUES(3,REPEAT('beijing 2008',2),MD5(context))
    SELECT * FROM t9 WHERE hash_value=MD5(REPEAT('beijing 2008',2))

  • 相关阅读:
    CF1368F
    CF1083F
    AGC030F
    AGC030E Less than 3
    CF1083C
    CF526G
    CF1408
    CF1408H Rainbow Triples
    CF1408I
    AGC019E
  • 原文地址:https://www.cnblogs.com/kate7/p/13306157.html
Copyright © 2011-2022 走看看