1. 程式人生 > >優化solr全量建索引速度實踐

優化solr全量建索引速度實踐

           solr全量建索引一般瓶頸都出現在讀資料來源這一端。 目前資料庫為Mysql,單表資料2000w,如果採用分頁讀取mysql的方式,大家都知道Mysql分頁越靠後分頁速度越慢。本人在專案中採取如下方案進行解決。

         假如商品表goods存在2000w資料,其中商品id為自增長方式。讀取資料來源優化步驟如下

  1.       複製商品表及表結構到另一張表 create table goods_replication from select * from goods      大概耗時5分鐘
  2.       生成一張表與商品結構相同   goods_tempory_record
  3.       將goods_replication 表資料複製10w條到goods_tempory_record 表中  (insert into goods_tempory_index select * from 1dcq_goods_replication order by goods_id         asc  limit  100000)    大概耗時2s
  4.       找出拷貝的10w條資料中最大的商品id記錄為maxGoodsId    (select max(t.goods_id) from (select goods_id from 1dcq_goods_replication go order by go.goods_id              limit  99999,1)t)   耗時       不超過1s
  5.        根據maxGoodsId刪除掉goods_replication中的前10w條記錄 (delete from 1dcq_goods_replication  where goods_id<maxGoodsIdorder by goods_id asc)   耗時大          概  10s
  6.       對goods_tempory_record中的10w資料建索引 (採用多執行緒解析資料,多執行緒提交到solr,每10w條進行一次硬提交)
  7.      truncate table goods_tempory_record
  8.       重複迴圈 3-7這幾個步驟,直到goods_replication中沒有資料為止
        總結如下             2000w資料,採用15個執行緒進行多執行緒提交,每10w資料進行一次硬提交,建索引耗時3小時

相關推薦

優化solr索引速度實踐

           solr全量建索引一般瓶頸都出現在讀資料來源這一端。 目前資料庫為Mysql,單表資料2000w,如果採用分頁讀取mysql的方式,大家都知道Mysql分頁越靠後分頁速度越慢。本人在專案中採取如下方案進行解決。          假如商品表goods存

Solr索引、增量索引

引言: ① 實現MySQL(Oracle)表資料全量索引和增量索引,基於Solr DIH元件實現起來比較簡單,只需要重複使用Solr的DIH(Data Import Handler)元件,對data-config.xml進行簡單的修改即可。Solr DIH元件的實現類為org

solr 更新慢,導致cup過高

solr cup場景:小L最近遇到個solr更新的問題,由於solr全量更新發現更新速度特別慢,同時發現cup使用率特別高經過查詢 發現solr在頻繁GC,GC回收引發的CPU消耗,分析問題:全量更新solr之後會將大量數據進行寫操作,十分消耗內存,當數據更新時,Solr會對Cache進行重新的預熱,在這個時

數據庫查詢優化——給臨時表索引

objects info ner create 優化 and 查詢 查詢優化 dex 平時查詢數據庫時為了查詢更加快速,一般都會用到臨時表,如select * into #t from tableA ,但是如果數據過大,但但用臨時可能也很慢,這時候可以給臨時表建個索引,如C

solr配置定時、增量同步索引mysql資料

篇文章中講了如何下載solr、安裝solr、啟動、增加中文分詞器、簡單查詢等傳送門,這篇文章我們來配置solr定時全量和增量同步mysql資料。 1、先看資料庫表 2、開啟E:\solrHome\core1\conf資料夾下的data-config.xml檔案,這個檔

呼叫lucene向solr索引實踐

      Solr的底層是基於Lucene索引結構,Lucene是一套資訊檢索工具包,但並不包含搜尋引擎系統,它包含了索引結構、讀寫索引工具、相關性工具、排序等功能。所以,只要是相同版本的Solr和

solr 定時索引 增量索引與dataimporter.properties 配置

solr增量索引配置 1.在進行增量索引前,首先要弄懂幾個必要的屬性,以及資料庫建表事項,和dataimporter.properties  data-config.xml裡面的資料    <!--  transformer 格式轉化:HTMLStripTransfo

SQL Server 查詢性能優化——創索引原則(二)

技術分享 dex ble 銷售 得到 with 9.png ron 條件 三:索引的建立原則   一般來說,建立索引要看數據使用的場景,換句話來說哪些訪問數據的SQL語句是常用的,而這些語句是否因為缺少索引(也有可能是索引過多)變的效率低下。但絕不是所有的SQL語句都要建

備份與增量備份實踐

mysql數據庫全備及增備1.1 全備備份與恢復全備實踐#######################################################################################1、安裝Xtrabackup備份命令wget -O /etc/yum.repos

數據庫優化之創索引

索引 sql 楊書凡 索引提供指針以指向存儲在表中指定列的數據,然後根據指定的次序排列這些指針,在根據指針到達包含該值的行什麽是索引 數據庫中的索引和數據的目錄相似,利用目錄快速查找所需的信息。在數據庫中,索引是某個表中一列或者若幹列值的集合,以及物流標識這些值的數據頁的邏輯指針清單

MaxCompute在更新插入、直接加載、歷史表中的數據轉換實踐

鼠標 高效 .com mage 由於 格式 ofo term 目標表 摘要: 2018“MaxCompute開發者交流”釘釘群直播分享,由阿裏雲數據技術專家彬甫帶來以“MaxCompute數據倉庫數據轉換實踐”為題的演講。本文首先介紹了MaxCompute的數據架構和流程,

企業級Redis開發運維從入門到實踐 (21)— 複製和部分複製

全量複製 對於一個儲存了很多資料的 master(主節點),slave(從節點)去做一個複製,想要的想過是把 master 的資料全部同步過來,在同步過程中 master 寫入的新資料也需要同步過來,這

(一)solr 7.31版本window系統全程安裝搭建,涵蓋專案用到的大部分配置,常用查詢,solr多條件查詢、排序,配置資料庫,定時同步,與增量更新,使用solrJ在java程式進行增刪改查

前言:由於專案最近在做淘寶客商品資訊查詢這一塊,做搜尋引擎,離不開全文搜尋伺服器,我這裡選擇了solr。solr的好處可以自行百科,這裡主要是講解技術。這篇文章主要講解window的安裝和使用。若大家感興趣或者專案用到,希望你能跟著我的步驟進行下去,如果遇到問題,可以後續看下我在最底下的問題

solr之mysql同步與增量同步

一、solr管理員命令 二、案例實戰說明(全量同步與增量同步) 一、solr管理員命令 我們在生產環境時,需要管理員維護solr伺服器的資料資訊,,那麼這裡有3種主要手段: 1.curl方式 curl http://localhost:8080/solr/updat

Solr 初始匯入資料庫資料

  假設存在表 newfrom表示 其中 有以下資料: 進入solr所在伺服器 搜尋 dataimport相關jar包 [email protected]:/opt/solr$ find / -name *import*.jar /opt/solr/dist/sol

MySQL 系列連載之 XtraBackup 熱備 or 恢復實踐(2)

導讀 如果您在本文遇到任何問題或疑問請到QQ群中與我們交流。也可在下方進行評論。我將在第一時間和您進行交流,共同學習。 QQ群:201777608、526871767、1689067(加群時註明:運維派) 1、準備工作 #系統環境 [[email protected] tools]# c

solr5.5配置定時、增量同步索引mysql資料

上篇文章中講了如何下載solr、安裝solr、啟動、增加中文分詞器、簡單查詢等傳送門,這篇文章我們來配置solr定時全量和增量同步mysql資料。 1、先看資料庫表 2、開啟E:\solrHome\core1\conf資料夾下的data-config.xml檔案,這個檔案

【docker】效能優化-redis之【主從複製】複製和部分複製

概念: 全量複製:用於初次複製或其它無法進行部分複製的情況,將主節點中的所有資料都發送給從節點,是一個非常重型的操作,當資料量較大時,會對主從節點和網路造成很大的開銷 部分複製:用於處理在主從複製中因網路閃斷等原因造成的資料丟失場景,當從節點再次連上主節點後,如果條件允許,主節點會補發丟

資料同步與資料校驗實踐——應對百億量級分庫分表異構庫遷移

在一家發展中的公司搬磚,正好遇到分庫分表,資料遷移的需求比較多,就入坑了。最近有個系統重構,一直做資料重構、遷移、校驗等工作,基本能覆蓋資料遷移的各個基本點,所以趁機整理一下。 資料同步的場景是:資料庫拆分、資料冗餘、資料表重構。 資料重構服務主要包括:全量

七、通過java程式碼實現增量、索引

      前期對solr全文檢索已經做了絕大部分的工作,現在剩下的就是如何讓索引自動載入,包括全量載入及增量載入。 1.首先要實現自動的全量載入及增量載入就要通過定時任務來實現,這裡定時任務的編寫不在這裡描述。 2.如下是我在專案中的全量、增量載入的程式碼: packag