Mysql5.7的中文mysql 全文索引查询功能怎么样?谁用过

【来自官方】MySQL 5.7 InnoDB新特性图文详解(分享实录)_高效运维_【传送门】
【来自官方】MySQL 5.7 InnoDB新特性图文详解(分享实录)
本文根据高效运维系列微信群「运维讲坛」的嘉宾分享整理而成。“高效运维”公众号作为本系列群的官方唯一公众号,原创并独家首发。「运维讲坛」邀请国内运维领域优秀技术专家作为分享嘉宾,其中线上分享每周一次,线下沙龙活动每月一次。欢迎关注“高效运维”公众号,以免费参加「运维讲坛」每月一次的线下交流活动;并抢先赏阅干货满满的各种原创文章(详情参见文末)。编
辑闫丽慧@SAP(内容收集&文章整理)董 伟、萧田国(审核&发布)讲师介绍赖铮(Allen,Lai),现任Oracle InnoDB团队Principle Software Developer,主要负责数据库执行引擎和存储引擎的研发。毕业于华中理工大学,从事数据库内核研发十余年,曾在达梦、Teradata担任高级工程师。精彩观点先知道引入事务池,所有事务缺省是只读,直到开始写操作,才成为读写事务;Innodb_buffer_pool_size可动态调整(有多爽?你懂的:);新增Memcached插件,适合数据量很小、但访问非常频繁的只读操作;新增虚拟列和虚拟列索引,新的数据压缩和GIS等功能;优化临时表机制,以提高复杂查询的性能。主题简介InnoDB大家都应该非常熟悉,作为MySQL的存储引擎,而且现在变成缺省的存储引擎,它为MySQL提供了强大的存储支持。伴随着MySQL从5.6演进到5.7,InnoDB也有了诸多激动人心的新变化。本文主要介绍InnoDB 5.7中性能的提升和新功能。【福利】点击文末的“阅读原文”,即可下载本次分享的PDF哦。分享内容在进入主题内容之前,先请阅读我司的法律声明 :)本次分享,我将从性能和功能两大方面来给大家介绍:1. 性能提升MySQL InnoDB在5.7中对性能做了一些非常重大的优化,不光可以大幅加速数据的访问和存储的速度,还能让大家节省很多日常维护的时间。1.1 事务操作相关优化在5.7中,我的老板(大牛),Sunny做了一个很重要的工作,就是对InnoDB的事务(transaction)进行了优化。在这方面他做的第一件事情就是创建事务池(Transaction Pool),这样就能减少很多事务创建和释放的开销:他做的第二件事情就是优化了事务的生命周期管理。所有事务首先都默认为是只读事务,这样这些事务就不会和其他事务冲突,只有当此事务开始一个写操作时才认为它是一个读写事务:此外,对事务的优先级也做了一些调整:接下来我们看看经过这些修改之后,性能有些什么变化。对于只读事务,我们用sysbench oltp测试,5.7比5.6有超过一倍的性能提升!详见下图:而对于读写事务,我们也有50%左右的性能提升(如下图),是不是很有诱惑?:)不过,这只是其中一项性能优化,更精彩的是我们在5.7中对临时表的重大性能优化!1.2 临时表相关优化在5.7中,我们将临时表从数据字典中分离出来,这样,临时表就不会跟其他正常表争抢数据字典的锁。同时,我们还将临时表的表空间跟普通表空间区别开来,以减少IO的开销对于临时表的DML操作,我们只记录Undo日志,不记录Redo日志,因为,临时表不需要在Crash的时候Recovery,但是它需要rollback。这样也减少了大量的日志开销。再给大家看看效果:上图显示了5.7的临时表create和drop的性能提升,这个应该是重复几万次create和drop所耗费的时间。5.7快到飞起来!而对临时表插入5M行数据的测试,性能也有一倍以上的提升:删除操作的开销也减少了75%:Update 操作,开销减少40%左右:所以,如果大家在应用中会使用InnoDB的临时表,那这个优化就能带来很大的好处。那么,大家有疑问了,我平时不用临时表,这个对我有啥好处?还真有,请看下图:刚才谈到的这个优化实际上不光是对InnoDB的临时表有用,还对一种大家平时看不见的表,即优化器用的缓存表也有好处。之前,MySQL的优化器是用MyISAM来缓存SQL执行的中间结果集的,现在,采用了InnoDB优化后的临时表,大家可以看图,明显快多了!也就是说,如果查询有join,基本上都要用到这项优化。介绍完两个最大头的性能优化点,接下来我们浏览一下其他一些也非常重要的性能优化工作.1.3 其他性能优化这个是对于缓冲区的优化,可以看到,这个优化最重要的是解决在12核甚至更多核机器上性能问题。另外,缓冲区刷新到磁盘也可以多线程做了:得益于前面介绍的只读事务的优化,InnoDB的Memcached 插件也有了性能的飞跃,现在已经可以达到1.1M QPS:建议大家尝试一下,特别是对数据量很小,但访问非常频繁的只读操作,可以采用InnoDB的Memcached插件。对比效果如下:最后,讲一下DDL相关优化。MySQL 5.7有了更快的DDL,这里主要指的是Alter table增加索引之类的操作。原来建索引是读一行插一行,现在是读一批,排序再批量插入。所以,性能有了170%的提升。如此一来,大家增加一个索引就快多了。接下来,我们来看在5.7中增加了哪些新功能。2. 新功能介绍2.1 分区功能以前,InnoDB内部是没有分区的,大家看到的都是在InnoDB外面做的分区。而现在,InnoDB原生支持了分区。这样带来的好处是,减少了内存开销。以上图所示一个8k的分区的表为例,当打开十个实例的时候,可以减少90%d 内存开销。除此之外,5.7提供了对一个单独的分区做import/export操作的支持:2.2 表空间管理其实这个不是什么新功能,只是让大家以更为习惯的方式来管理表空间而已。2.3 缓冲区动态调整动态调整缓冲区的大小,我想大家肯定会喜欢。大家再也不用关数据库,改配置文件,再启动数据库来修改缓冲区的大小了,so easy!2.4 日志管理的新功能日志管理的新功能是自动截断,这样日志文件就不会再不停的增长了。这个功能我想大家也应该挺喜欢。2.5 支持更大的数据页之前我们支持的是4k,8k,16k,现在可以支持32k,64k了。这样一些blob数据就可以直接存在页里,访问起来更快。2.6 GIS的支持在5.7中最重要的新功能是对GIS的支持。我们在InnoDB内部实现了基于R-tree的空间索引,这样用户就能很方便的查找地理信息数据了。比如,查找以我为中心,周围2公里范围内的妹子之类的操作将变得异常迅速,:D2.7 虚拟列和虚拟列上的索引5.7中还有一个重要功能是虚拟列和虚拟列上的索引。也就是对于那些可以通过其他列的数据计算出来的列,大家可以创建一个虚拟列,它实际上是不存储数据的,每次读这个列都是临时在InnoDB内部计算出来。这个功能是客户要求的,但我不知道大家在实际应用中是不是对此有需求。2.8 新的数据压缩方法另一个重要的新功能是新的数据压缩方法。基于页IO的压缩,也就是说,数据的压缩和解压发生在页IO的过程中。我们利用了一些文件系统的Punch Hole(文件打洞)功能来辅助实现这一新功能。其实现方法这里不在赘述,总之效果就是文件更小,效率更高:2.9 其他新功能在其他功能方面,我们还增加了一些对字符集的支持,比如GB18030:还有更完善的全文索引支持:对于新存储设备的支持方面,我们在5.7中支持了原子写入,在NVMFS上关掉了DW buffer:还有一些其他功能就不一一列举了,大家可以稍微浏览一下看看有没有自己感兴趣的,尤其是PFS这块,对于运维来说应该有帮助,可以让DBA更多的了解当前系统的状态。最后,是一些常用网站:/downloads/mysql//3. 总结InnoDB在5.7中在性能和功能方面做了很多工作,非常期待大家的试用和反馈,谢谢大家!【福利】点击文末的“阅读原文”,即可下载本次分享的PDF哦。如何一起愉快地发展这是一个新的时代!每个人都有自己的声音,值得被尊重,并且有机会被尊重。高效运维系列微信群是国内高端运维圈子、运维行业垂直社交的典范。现有会员800余名,其中运维总监及以上级别会员300多名。“高效运维”公众号值得您的关注,作为高效运维系列微信群的唯一官方公众号,每周发表多篇干货满满的原创好文:来自于系列群的讨论精华、运维讲坛线上/线下活动精彩分享及部分群友原创。“高效运维”也是互联网专栏《高效运维最佳实践》及运维2.0官方公众号。来吧朋友,共襄盛举。提示:目前高效运维两个微信群均已满员,如您愿意,可添加刘玉强个人微信号 kidult0314 为好友,并申请加入我们聊天群(技术讨论+部分水贴,已有来自1群和2群众多喜欢热闹的朋友)。重要提示:除非事先获得授权,请在本公众号发布2天后,才能转载本文。尊重知识,请必须全文转载,并包括本行及如下二维码。
觉得不错,分享给更多人看到
高效运维 微信二维码
分享这篇文章
高效运维 最新文章
高效运维 热门文章<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&MySQL中文全文索引另一种解决方案
一直以来MySQL的中文全文索引都没有一个很理想的解决方案。 最新发现 有这样一个插件 , 不知道分词和检索效果会如何,记录下来,有空再详细研究一下。
/post/356.htm
国内已有的MySQL中文全文索引解决方案有两个:一是海量科技的,二是hightman开发的, 两者都是基于中文分词技术,对中文语句进行拆分。但是,两者都有弊端,一是不支持64位操作系统;二是对修改了MySQL源码,只支持某一MySQL版 本,不便于跟进新版本;三是词库不能做到很大很全,对于专业性质较强的数据库内容(例如搜索&颐和园路东口&、&清华东路西口&等公交站点,&莱镇香格里 &、&碧海云天&等楼盘名称),基于中文分词的全文索引经常搜索不出来任何内容,即使添加分词词库,也不会很全面。
-----------------
 一、MySQL中文全文索引插件mysqlcft的特点:1、优点:①、精准度很高:采用自创的&三字节交叉切分算法&,对中文语句进行分割,无中文分词词库,搜索精准度远比中文分词算法高,能达到LIKE &#39;%&#8230;%&的准确率。②、查询速度快:查询速度比LIKE &#39;%&#8230;%&搜索快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分布式系统架构,无词库维护成本,不存在词库同步问题。
2、缺点:①、mysqlcft中文全文索引只适用于MyISAM表,因为MySQL只支持对MyISAM表建立FULLTEXT索引;②、MySQL不能静态编译安装,否则无法安装mysqlcft插件;③、基于&三字节交叉切分算法&的索引文件会比海量、ft-hightman等基于&中文分词算法&的索引文件稍大,但不是大很多。根据我的测试,mysqlcft全文索引的.MYI索引文件是.MYD数据文件的2~5倍。
MySQL中文全文索引另一种解决方案海量解决MYSQL不支持中文全文检索缺陷-mysql-电脑编程网海量解决MYSQL不支持中文全文检索缺陷作者:佚名 和相关&&
近日,国内领先的海量数据智能计算技术服务商海量公司()应市场需求推出中文加强版,该产品完善的解决了MYSQL在中文环境下全文检索不能正常使用的缺陷。据记者了解,这是继2004年,微软(中国)公司与北京海量在线信息技术有限公司达成战略合作伙伴意向,双方携手推出“企业级中文搜索引擎新解决方案――DESE(嵌入式数据库搜索引擎SQL Server版本)的后续产品之一。海量MYSQL数据库中文加强版在保持数据库系统既有功能的前提下,解决了MYSQL中文全文检索不能正常使用的缺陷,还针对web信息检索应用的特殊需求,同时提供了动态摘要扩展功能,为web应用提供更加友好的用户界面。北京海量在线总裁王革焰说,MYSQL数据库中文加强版是基于海量智能分词技术的数据库内嵌中文全文检索功能,并且针对全文检索应用的特殊需求作过优化的,在检索的查全率、查准率以及空间膨胀率三个方面取得了平衡。海量公司已经面向研究者开放了《海量智能分词研究版》(可在 上免费下载),对于此次推出的MYSQL数据库中文加强版也将对研究者免费开放。值得一提的是,MYSQL数据库中文加强版通过使用海量中文智能分词技术,数据库中文全文检索的性能得到很大的提升。MYSQL数据库中文加强版采用海量公司先进的智能分词技术,含有查询内容反显的动态摘要技术等多项中文处理智能技术,同时结合数据库自身的检索机制,形成基于数据库的新型搜索引擎,实现了数据的权限管理、数据维护、数据安全、信息搜索一体化。该产品主要适用于需要集成全文检索功能的OA系统、EIP系统、网站发布系统、内容管理系统等独立软件开发商;内部资料分散,需提高知识利用率,提升自身竞争力的企事业单位、组织及政府机构;有站内检索功能需求的网站,特别是专业网站、中小型网站和企业网站等。(出处:第七城市)
相关资料:|||||||海量解决MYSQL不支持中文全文检索缺陷来源网络,如有侵权请告知,即处理!编程Tags:                &                    }

我要回帖

更多关于 mysql 全文索引查询 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信