IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

MySQL中文全文索引插件推荐:mysqlcft

标点符 2011-10-12 00:17:58 累计浏览 4,236 次
本机暂存

    MySQL在高并发连接、数据库记录数较多的情况下,SELECT … WHERE … LIKE ‘%…%’的全文搜索方式不仅效率差,而且以通配符%开头作查询时,使用不到索引,需要全表扫描,对数据库的压力也很大。MySQL针对这一问题提供了一种全文索引解决方案,这不仅仅提高了性能和效率(因为MySQL对这些字段做了索引来优化搜索),而且实现了更高质量的搜索。但是,至今为止,MySQL对中文全文索引无法正确支持。

    Mysqlcft 是为 MySQL 5.1.22 ~ 5.1.25 RC 开发的中文全文索引插件,用于解决MySQL无法正确支持中文全文检索的问题。

    MySQL中文全文索引插件mysqlcft的优点:

  • 精准度很高:采用自创的“三字节交叉切分算法”,对中文语句进行分割,无中文分词词库,搜索精准度远比中文分词算法高,能达到LIKE ‘%…%”的准确率。
  • 查询速度快:查询速度比LIKE ‘%…%”搜索快3~50倍,文章末尾有测试结果;
  • 标准插件式:以MySQL 5.1全文索引的标准插件形式开发,不修改MySQL源代码,不影响MySQL的其他功能,可快速跟进MySQL新版本;
  • 支持版本多:支持所有的MySQL 5.1 Release Candidate版本,即MySQL 5.1.22 RC~最新的MySQL 5.1.25 RC;
  • 支持字符集:支持包括GBK、GB2312、UTF-8、Latin1、BIG5在内的MySQL字符集(其他字符集没有测试过);
  • 系统兼容好:具有i386和x86_64两个版本,支持32位(i386)和64位(x86_64)CPU及Linux系统;
  • 适合分布式:非常适合MySQL Slave分布式系统架构,无词库维护成本,不存在词库同步问题。
  • MySQL中文全文索引插件mysqlcft的缺点:
  • mysqlcft中文全文索引只适用于MyISAM表,因为MySQL只支持对MyISAM表建立FULLTEXT索引;
  • MySQL不能静态编译安装,否则无法安装mysqlcft插件;
  • 基于“三字节交叉切分算法”的索引文件会比海量、ft-hightman等基于“中文分词算法”的索引文件稍大,但不是大很多。根据我的测试,mysqlcft全文索引的.MYI索引文件是.MYD数据文件的2~6倍。
  •     mysqlcft的核心思想──“三字节交叉切分算法”

        原图已失效

        注:本文以0~7数字序号代表“英文”、“数字”和“半个汉字”,以便说明。

        1、按三字节对中文语句进行切分,建立全文索引:

        例如:“全文索引”或“1台x光机”四个字会被交叉分拆为6份,建立反向索引:012/123/234/345/456/567。

        2、按三字节对搜索的关键字进行切分,在全文索引中找出对应信息:

        例①:搜索关键字“文索”,用数字序号表示就是“2~5”,那么它将被切分成:234/345。这样,就与全文索引对上了。

        例②:搜索关键字“x光机”,用数字序号表示就是“3~7”,那么它将被切分成:345/456/567。这样,也与全文索引对上了。

        例③:搜索关键字“1台 光机”,用数字序号表示就是“0~2”和“4~7”,那么它将被切分成:012/456/567 。这样,多关键字搜索也与全文索引对上了。

        更多的信息见:《MySQL中文全文索引插件 mysqlcft 1.0.0 安装使用文档

        程序官方地址:http://code.google.com/p/mysqlcft/

    同分类推荐文章

    1. 使用deepseek进行Oracle恢复,引起重大故障 (2026-06-22 10:56:00)
    2. 接手一个只差临门一脚的数据库恢复 (2026-06-18 00:13:09)
    3. 我做了一个 AI 版的 StarRocks 升级风险扫描工具,直接帮我定位到一个风险 (2026-06-15 01:00:00)

    查看更多 数据库 文章 →

    建议继续学习

    1. 用Hyer来进行网站的抓取 (累计阅读 158,251)
    2. 如何成为Python高手 (累计阅读 54,992)
    3. MySQL数据库在实际应用一些方面的介绍 (累计阅读 36,398)
    4. WordPress插件开发 -- 在插件使用数据库存储数据 (累计阅读 29,164)
    5. Mysql监控指南 (累计阅读 21,351)
    6. 由浅入深探究mysql索引结构原理、性能分析与优化 (累计阅读 16,523)
    7. 在Apache2.2.XX下安装Mod-myvhost模块 (累计阅读 13,057)
    8. Linux 性能监控、测试、优化工具 (累计阅读 13,011)
    9. include(“./file.php”)和include(“file.php”)区别 (累计阅读 12,789)
    10. 15个最好的免费开源电子商务平台 (累计阅读 12,541)