美文网首页
MySql, 阿里云porlarDb的模糊检索、全文检索效率测试

MySql, 阿里云porlarDb的模糊检索、全文检索效率测试

作者: 许国标 | 来源:发表于2022-02-21 15:09 被阅读0次

测试环境:

本机Mysql,版本5.7.9, win10,中等配置笔记本电脑

阿里云porlarDb, 2核4G入门配置

测试表:

在本机和阿里云数据库中,都创建4个表, 

test_fulltext_03、test_fulltext_04、test_fulltext_05、test_fulltext_06

表结构相同,都是id,province、name、content 4个varchar字段

测试数据准备

用java先生成300万行和500万行的两个文本文件,内容格式如下:

再使用 LOAD DATA命令导入表里(速度极快,300万行仅需1分钟),比如:

 LOAD DATA LOCAL INFILE "d:/temp/data3.txt" INTO TABLE test_fulltext_03 FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';

表03和04都导入data3.txt, 300万行, 

表05和06都导入data5.txt, 500万行

对表04和06的name和content字段加上全文检索索引:

CREATE fulltext INDEX index_name ON test_fulltext_04(name, content);

CREATE fulltext INDEX index_name ON test_fulltext_06(name, content);

添加后的状态

================ 本机Mysql  300万行 性能测试 =====================

3.1:表03,直接用 like %%模糊匹配,检索前1000行

              速度惊人,0.016秒

3.2:表03,直接用 like %%模糊匹配,检索第2000 - 3000行

              0.234秒,可以看到时间明显增加

3.3:表03,直接用 like %%模糊匹配,检索第8000 - 9000行,2万- 2万1千行

             可以看到耗时迅速变多

3.4:表03,直接用 like %%模糊匹配,检索条件匹配不到数据的情况

          耗时4秒,可见like查询,时间和目标数据在什么位置有关

3.5:表03,直接用 like %%模糊匹配,统计目标记录数量

        耗时也是4秒,可见统计数量很慢

3.6:表03,直接用 like %%模糊匹配,统计目标记录数量,条件找不到的情况

         耗时3.8秒,还是慢

4.1:表04,使用全文索引进行匹配,检索前1000行

  令人惊奇,0.59秒,比直接like的要慢的多

4.2:表04,使用全文索引进行匹配,检索前2000-3000行,8000-9000行,20000-21000行

    时间也在增加,但是增幅较小,比较稳定。之前表03匹配2万-2万1千行,要2.3秒

4.2:表04,使用全文索引进行匹配,统计数量

       这个耗时达到12秒,无法忍受的程度

4.3:表04,使用全文索引进行匹配,统计数量,匹配不到的情况

     更慢的效果。。。

================ 阿里云PolarDb  300万行 性能测试 =====================

阿里3.1:表03,直接用 like %%模糊匹配,检索前1000行

         0.09秒,基本是网络传输耗时

阿里3.2:表03,直接用 like %%模糊匹配,检索第2000 - 3000行、8000-9000行,20000-21000行

              时间增加的情况与本机mysql类似,性能基本持平

阿里3.3:表03,直接用 like %%模糊匹配,检索条件匹配不到数据的情况

          耗时3秒,比本机快1秒

阿里3.4:表03,直接用 like %%模糊匹配,统计目标记录数量

                  耗时1.3秒,比本机的4秒快很多

阿里3.5:表03,直接用 like %%模糊匹配,统计目标记录数量,条件找不到的情况

                耗时1.1秒,比本机的4秒快很多

阿里4.1:表04,使用全文索引进行匹配,检索1000行,处于不同位置的数据

    速度和本机全文检索基本一致

阿里4.2:表04,使用全文索引进行匹配,统计数量

       6秒7,虽然慢,但是比本机全文检索快很多(12秒)

阿里4.3:表04,使用全文索引进行匹配,统计数量,匹配不到的情况

     3秒,比本机全文检索快很多(13秒)

================== 300万行测试的基本结论 ===========================

1:直接like查询,数据靠前时,速度很快,越靠后越慢

2:全文检索时,数据靠后带来的效率影响较小,性能更稳定

3:count数量比查询数据要慢的多, 本机mysql 全文检索的count更慢

4:阿里polarDb的like查询,性能和本机基本一致, 阿里like查询的统计数量,比本机要快的多

5:阿里polarDb的全文检索查询,性能和本机基本一致,统计数量比本机快得多

500万行数据的测试,方法和以上一致,只贴数据

5.1 本机,like查询

5.2本机,全文检索

5.1阿里,like查询

           可以注意到,count(*)的效率远超本机

5.2阿里,全文检索

全文检索的 count(*),效率也远超本机

相关文章

  • MySql, 阿里云porlarDb的模糊检索、全文检索效率测试

    测试环境: 本机Mysql,版本5.7.9, win10,中等配置笔记本电脑 阿里云porlarDb, 2核4G入...

  • django中的全文检索

    全文检索 全文检索不同于特定字段的模糊查询,使用全文检索的效率更高,并且能够对于中文进行分词处理 haystack...

  • Django 2.1.7 全文检索

    全文检索 全文检索不同于特定字段的模糊查询,使用全文检索的效率更高,并且能够对于中文进行分词处理。 haystac...

  • 检索

    全文检索 全文检索不同于特定字段的模糊查询,使用全文检索的效率更高,并且能够对于中文进行分词处理。 haystac...

  • Django全文检索

    全文检索 全文检索不同于特定字段的模糊查询,使用全文检索的效率更高,并且能够对于中文进行分词处理' 安装 pip ...

  • Django+haystack+whoosh+jieba全文检索

    简介 全文检索主要用在大数据量时多字段模糊检索上能较大的提高检索效率。django实现全文检索功能主要靠hayst...

  • 搜索引擎--全文检索

    全文检索不同于特定字段的模糊查询,使用全文检索的效率更高,并且能够对于中文进行分词处理。 haystack:全文检...

  • MySQL中文全文检索

    MySQL中文全文检索

  • 全文检索-sphinx

    为什么要用Sphinx原因1:MySQL不支持中文全文检索、模糊查询(like)慢原因2:sphinx支持中文全文...

  • MySQL 全文检索

    一、概述 二、语法 例如: 三、检索方式 上面的search_modifier是全文索引的检索方式,MySQL中有...

网友评论

      本文标题:MySql, 阿里云porlarDb的模糊检索、全文检索效率测试

      本文链接:https://www.haomeiwen.com/subject/fvqhmhtx.html