Elasticsearch与Postgresql大数据检索性能对比
Elasticsearch与Postgresql数据检索性能对比与融合
一般来说,影响数据库最大的性能问题有两个,一个是对数据库的读写操作,一个是数据库中的数据太大导致操作慢,对于前者我们可以适当借助缓存来减少一部分读操作,而针对一些复杂的报表分析和搜索可以交给hadoop和elasticsearch,对于写并发大,读也并发大,我们可以考虑分库分表,主从读写分离或者两者结合等方式来提高并发性和时效性,例如PG大并发写,大数据查看可以用elasticsearch与PG数据同步来读,可以启到很好的效果。
ElasticSearch做为搜索服务器,在性能上确实优势突出,是当前流行的企业级搜索引擎。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。主要用于实时搜索和分析引擎,,支持对结构化数据和非结构数据处理检索。
例如,我们使用的数据库时Postgres数据库,主从配置,从库主要用于数据分析检索为主,如果使用postgres进行多表多维度全量方式检索分析用户行为等挖掘有价值的数据,这样性能上无法及时满足客户时时性要求,因此我们可以使用Elasticsearch数据库代替PG从库做为挖掘分析数据库,使用过程中发现两者表与数据的兼容性都还不错,而且展现数据的性能确实快,
如下图是同一张表数据在postgres数据库中对应的表,在Elasticsearch数据库中对应,说明数据是兼容的。
而在postgres数据库中针对visit_plan_qz 表3073920笔数据进行全量查询,耗时大于5分钟都无法正常展现出来,
如果使用Elasticsearch进程全量查询仅使用0.0005秒就可以展现出数据,当然Elasticsearch会自动对该表划分为5个分片来展现数据。
工作原理:
PG关系数据库 ⇒ 数据库 ⇒ 表 ⇒ 行 ⇒ 列(Columns)
Elasticsearch ⇒ 索引(Index) ⇒ 类型(type) ⇒ 文档(Docments) ⇒ 字段(Fields)
可以看出Elasticsearch性能上的优势在索引,它提供强大的索引能力,Elasticsearch 是通过 Lucene 的倒排索引技术实现比关系型数据库更快的过滤
Elasticsearch的索引思路:将磁盘里的东西尽量搬进内存,减少磁盘随机读取次数(同时也利用磁盘顺序读特性),结合各种算法,用及其苛刻的态度使用内存。
- Oracle、PostgreSQL与Mysql数据写入性能对比
- YDB与spark SQL在百亿级数据上的性能对比测试
- 千万级别数据表,单列索引和多列索引性能对比
- PHP7 RC7 Release对比PHP5.6快速排序20000数据性能体验以及新语法尝鲜
- MySQL和PostgreSQL 导入数据对比
- oracle 10g数据泵和导入导出性能对比(二)
- php中Apc和memcache缓存数据性能对比
- mysql 序列化缓存到txt文件查找数据与直接查找数据 性能对比,13,601条数据文件缓存平均0.085秒后只需0.025秒 推荐 程序员导航网http://www.je666.com
- 数据结构之程序性能检测(一):三种排序算法·对比
- ElasticSearch提供的bulk update性能对比
- MongoDB数据自动同步到ElasticSearch(实现中文全文检索)
- Dynamics CRM2016 查询数据的三种方式的性能对比
- 遍历DataTable内存数据的三种方法性能对比
- YDB与spark SQL在百亿级数据上的性能对比测试
- 【原创】MySQL和PostgreSQL 导入数据对比
- oracle 10g数据泵和导入导出性能对比(一)
- Dynamics CRM2016 查询数据的三种方式的性能对比
- MySQL查询随机数据的4种方法和性能对比
- YDB与spark SQL在百亿级数据上的性能对比测试
- 『性能』List 和 HashSet 查找性能比较 (任何数据量的检索 从此只用 HashSet )