我有一MYSQL 5.1下建立的数据表,大约有1000万数据,表结构除了ID是自动增加的bigint外,其他都是varchar类型,现在需要界面进行模糊查询A,B,C,D,E这5个文本字段,为了优化性能,我建立了相关索引,查询效率提升了,但是由于1000万多数据,因为还是很慢,每次查询都超过10秒,所以想通过分区优化,但是都是文本字段,我都不知道如何分区了,大家帮忙看看。优化的目标是3秒左右,最低要5秒以内查出来。谢谢。

解决方案 »

  1.   


    比较难。虽然你可以用 ASCII(str) 之类的函数来创建分区,但关键要看你的查询是什么?这种情况下分区表很难对查询速度有所提高。
      

  2.   

    字段内容是姓名,省份,机构名等。无规律的,就省份可以list分区
      

  3.   

    ASCII(str) 听说 MYSQL 的分区中不太支持。不确定?
      

  4.   

    另外问下,有规则的字符串,怎么分区:比如 ZK0000001-ZK2000000 这种字符和数字结合的怎么分区?
      

  5.   


    是的,你的说法是正确的,字符串函数在MYSQL分区中不支持 
      

  6.   

    ACMAIN_CHM,请教下,有规则的字符串,怎么分区:比如 ZK0000001-ZK2000000 这种字符和数字结合的怎么分区?
      

  7.   

    有规则的字符串,怎么分区:比如 ZK0000001-ZK2000000 这种字符和数字结合的怎么分区?