meilisearch导入840654条数据时,巨卡

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

meilisearch docker日志


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

保持勇敢,坚持有趣,生命不息,折腾不止。
OrangBus
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 8

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

建议(当然,不一定全)

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

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

暂时这些把。 继续上班

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

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

2年前 评论

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

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

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