下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

什么是mysql的增量索引?

作者:课课家教育     来源: http://www.kokojia.com点击数:1154发布时间: 2019-05-09 12:32:05

标签: mysql自动增量数据库增量索引

    今天给大家介绍下在MySQL中利用sphinx进行全文搜索,利用sphinx生成增量索引?那么是增量索引呢?

什么是mysql的增量索引?_数据库_增量索引_课课家

  一,增量索引

  就个人理解增量索引到底是干什么的,怎么用?

  简单解释一下,向一个数据表插入数据时,这些新插入的数据,就是增量了,sphinx是根据索引来查找数据的,如果索引没有更新,新增数据是查不出来的,所以我们要更新主索引,更新增量索引,增量条件的设定就比较重要了。我在网上看到一些增量索引的做法,并亲自尝试了一下,发现在一些问题:

  二,问题

  1,上面7行和20行这种写法,我个人尝试了一下,根本查不出增量数据,因为自身就是有矛盾的。

  sql_query_pre=REPLACEINTOsph_counterSELECT1,MAX(id)FROMdocuments

  将数据表中的最大的那个数据的ID放到记录增量条件的表中,并且这个条件很简单就是一个ID,如果我们插入一条数据,然后用

  /usr/local/sphinx/bin/indexer--rotate--config/usr/local/sphinx/etc/sphinx.conftest1stemmed

  更新索引。

  SELECTdoc.*FROMdocumentsdocjoinsphinx1on(doc.id=sphinx1.id)wherequery='张;mode=any';

  因为WHEREid>(SELECTmax_doc_idFROMsph_counterWHEREcounter_id=1),这里肯定是等于或者小于而不是大于

  2,现在我把WHEREid>(SELECTmax_doc_idFROMsph_counterWHEREcounter_id=1)这里的大于改成等于,又出现了一个问题,如下操作:

  这里我一次插入了二条数据,但是增量条件中,只记录最后一个插入的数据,问题来了.

  更新增量索引,他只更新了最后一条,之前的那个条件,如果在没有更新主索引的情况下,就消失了。

  三,解决方法

  1,存放增量条件的表中,不存放单条数据的ID,而是存放数据生成的时间段,我自已设的一个小时,就是记录生成时间的小时段。sphinx根小时段来更数据表中新增加的数据,你可设置3分钟,更新一次,时间自己定。

  大家是不是对mysql中的增量索引有一定的了解了呢?是不是都明白了在增量索引中存在的一些问题以及解决方法?如果还没理解,可以关注课课家,进一步学习。

赞(13)
踩(4)
分享到:
华为认证网络工程师 HCIE直播课视频教程