分库分表之后的搜索策略

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分库分表之后的搜索策略相关的知识,希望对你有一定的参考价值。

所谓分库,就是把原来在一个库中的数据放到多个库中存储;

分表就是把原来在一个表中的数据放到多个表中存储。

这里不讨论分库分表的策略和具体实现,主要想记录的一点,就是分库分表后的搜索如何实现?

工作中遇到的是通过将库、表中的数据抽取出来,可用的工具有Solr、ElasticSearch等,

对你想要查询的字段建立索引,形成搜索库,这个搜索库和原来对表的搜索差不多,不同的是,搜索这个库并不是为了获取记录的完整数据。

完整的记录数据是通过查询条件在搜索库中找到满足条件的记录的id,然后通过获取的id再在对分库分表的数据检索数据,这样的话,通过主键对库进行查找还是很快的。

主要思想其实就是要避免通过非主键的查询条件对分库分表的数据进行全文检索!

 

另外,往库中插入数据可以通过消息队列的异步事件,将数据同步到搜索库中。

 

这里写的比较粗糙,还有很多具体的实现没有涉及。

比如,搜索库的实时索引怎么建立?

以上是关于分库分表之后的搜索策略的主要内容,如果未能解决你的问题,请参考以下文章

一个简单的数据库分库分表主键ID生成策略

oracle分库分表

数据库分库分表

分表分库与分区的区别及拆分策略

分区取模分库分表策略:多表事务分库内闭环解决方案

从原则方案策略及难点阐述分库分表