meilisearch导入840654条数据时,巨卡

你们在使用meilisearch的时候,当导入大量的数据的时候会不会很卡。
linux环境下,4核,8G内存
使用队列导入

meilisearch docker日志


感觉超级缓慢,如果启用多个 php artisan queue:work 服务器直接就卡死了。
你们遇到这个问题是如何处理的?

保持勇敢,坚持有趣,生命不息,折腾不止。
OrangBus
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 8

导入数据,使用事务肯定卡死

建议(当然,不一定全)

影响处理速度的原因及方案

  1. 分批导入,每次执行完成后间隔一定时间,留出资源让服务器处理其他请求
  2. 也可以单独一个服务器跑任务,这样时间间隔可以缩短,但是数据库使用率不能太高,否则也是会影响前台打开速度
  3. 如果可以,批量插入数据库,批量更新可能就不适用了
  4. 优化更新的 SQL 语句,也是看场景的
  5. 不建议用队列批量导入,批量更新太大的话,我一般是独立出去弄个 xxxCommand 去执行。
    队列中执行完任务 1 ,才会执行任务 2,(貌似是可以后台执行,就是启动另一个进程执行,不确定)
  6. 必须使用事务的话,尽量减小事务的大小、更新的数据范围
  7. 客户端和 MySQL 不在一个内网或同一台主机
  8. 仅适用于 MySQL, 修改 innodb_flush_log_at_trx_commit = 2,更新完数据后,再改回去。可以提升速度,非常明显。但是非正常关闭会有丢失数据的风险。

暂时这些把。 继续上班

1年前 评论
OrangBus (楼主) 1年前
kis龍 (作者) 1年前

会,当时百万数据花了大半天,用起来也不太符合场景,然后抛弃了 :smile:

1年前 评论

想知道80多w数据占多少内存,之前试过导入十多万数据,占差不多3G内存,是xunsearch的3倍,果断放弃了

1年前 评论
OrangBus (楼主) 1年前
诺大的院子 (作者) 1年前
OrangBus (楼主) 1年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!