Slide 1

Slide 1 text

Meilisearch 在大量資料遇到的問題 新聞資料庫 + Meilisearch 2026-07-12 日落 (@zeroplex)

Slide 2

Slide 2 text

2 Agenda  新聞資訊資料庫  資料操作特性  發展  self hosting 建議

Slide 3

Slide 3 text

3 新聞資料庫  documents : 217 萬  data size : 8 GB  index size : 35 GB

Slide 4

Slide 4 text

4

Slide 5

Slide 5 text

~ 150 ms

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

12 Full Text Search  不須對語言類型做設定  支援 typo

Slide 13

Slide 13 text

Meilisearch 資料操作 新增 刪除 查詢

Slide 14

Slide 14 text

14 新增資料  document (no need to pre-define)

Slide 15

Slide 15 text

約 2000 字

Slide 16

Slide 16 text

耗時 85 秒

Slide 17

Slide 17 text

約 8000 字

Slide 18

Slide 18 text

耗時 112 秒

Slide 19

Slide 19 text

r/s rMB/s rrqm/s %rrqm r_await rareq-sz Device 3090.50 309.5M 0.00 0.0% 1.49 102.6k sda1 w/s wMB/s wrqm/s %wrqm w_await wareq-sz Device 0.00 0.0k 0.00 0.0% 0.00 0.0k sda1

Slide 20

Slide 20 text

20 新增資料  預處理時間長  disk I/O 大  換取查詢時間

Slide 21

Slide 21 text

21 刪除資料  重建索引  disk I/O 大  不影響查詢

Slide 22

Slide 22 text

22 查詢  typo tolerance  ranking score  stop words  exclude

Slide 23

Slide 23 text

Meilisearch 發展 功能 演進 授權

Slide 24

Slide 24 text

24 版本演進  1.1x  效能  1.2x  資料類型、效能  1.3x ~  AI  維運相關

Slide 25

Slide 25 text

25 特色  彈性 ./meilisearch \ --max-indexing-memory 64Mb \ --max-indexing-threads 2

Slide 26

Slide 26 text

26 授權  MIT  Enterprise Edition  sharding  horizon scaling

Slide 27

Slide 27 text

Self Hosting 注意事項 建議

Slide 28

Slide 28 text

28 運算 by Zabbix

Slide 29

Slide 29 text

29 Disk I/O  資料預先處理 讀 寫

Slide 30

Slide 30 text

M USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS 149GiB / 11.68GiB 9.84% 10.2GB / 58.4GB 64.2GB / 114MB 37 .86MiB / 11.68GiB 0.72% 27.4MB / 30.6MB 74.6GB / 0B 11 0.2MiB / 11.68GiB 4.27% 18.9GB / 17.3GB 40.4GB / 10.9GB 22 603GiB / 11.68GiB 13.72% 36.1MB / 36.2MB 81.1GB / 9.16GB 120 2.5MiB / 11.68GiB 5.46% 1.77GB / 6.41GB 62.5GB / 10.2GB 22 .49MiB / 11.68GiB 0.28% 2.66GB / 2.43GB 18.8GB / 30.1GB 6 84MiB / 11.68GiB 0.06% 5.17GB / 5.38GB 8.09GB / 4.1kB 7 3.2MiB / 11.68GiB 1.70% 839MB / 5.38GB 64.7GB / 576MB 4 0.8MiB / 11.68GiB 1.85% 287MB / 652MB 71.6GB / 176MB 17 434GiB / 11.68GiB 29.40% 1.88GB / 4.39GB 81.3TB / 14.7TB 29 0.9MiB / 11.68GiB 1.43% 9.6GB / 1.49GB 404GB / 35.9GB 19 .09MiB / 11.68GiB 0.75% 77.7kB / 126B 4.48GB / 408MB 9 .32MiB / 11.68GiB 0.28% 125kB / 439kB 338GB / 6.39GB 9 .53MiB / 11.68GiB 0.15% 2.51GB / 5.09GB 77.1GB / 7.64GB 231 .08MiB / 11.68GiB 0.41% 22.8GB / 1.58GB 307GB / 142GB 28

Slide 31

Slide 31 text

31 Compact  1.23.0+  remove redundant data

Slide 32

Slide 32 text

32 建議  一次大量新增 instead of 逐筆新增  拆分 index

Slide 33

Slide 33 text

33 建議  NVMe SSD  讀寫分離 (optional)

Slide 34

Slide 34 text

34 建議  獨立主機、專用硬碟  用別人的硬碟 ╮ ( _ ) ╯ ╰ ╭

Slide 35

Slide 35 text

35 同類型工具  MySQL / PostgreSQL  ElasticSearcch / OpenSearch  Manticore Search  Typesense