반응형
Maria를 사용한 워터라인/Sails.js 대량 삽입 및 삭제DB
Sails.js 앱에 테이블이 있습니다.auctions
Battle.net API에서 마지막으로 덤프된 시점에서 수신된 데이터가 포함됩니다.
따라서 새로운 덤프가 생성될 때마다realm
도착합니다. 이 행과 관련된 모든 행을 클리어해야 합니다.realm
새로운 것을 삽입합니다.
어느쪽이든 할 수 있습니다.
- all-at-an-time(단일 쿼리 포함)
destroy()
덤프 자체가 있는 다른 것); - 또는 소분할(그것들에 의해 분류됨)
item
,그리고나서destroy()
모든 레코드의 취득realm
「아이템을 삽입하고 나서, 새로운 것을 삽입합니다.」
지금 하고 있는 것은async.forEachOfSeries
위에서 설명한 바와 같이 작은 배치이지만 현재 로드(작업 실행 시마다 45,000개의 레코드가 삽입됨)에서는 견딜 수 없을 정도로 느립니다.또한 이 작업은 갱신할 필요가 있는 경우에는 고려되지 않습니다.item
툴팁 레코드한 번에 삽입하려고 하면 Node.js가 페이징을 시작하여 행업하거나 MariaDB가 Waterline에서 허용하는 시간보다 오래 걸립니다.
어떻게 하면 더 확장적으로 접근할 수 있을까요?그럴 것이다async.queue
또는async.cargo
작동합니까?
한 테이블의 모든 행을 교체한다고요?다음과 같이 합니다.
CREATE TABLE new LIKE real;
- 로드
new
새로운 데이터로 RENAME TABLE real TO old, new TO real;
DROP TABLE old;
다운타임이 없는 스왑을 실현합니다.LOAD의 효율성에 대해서는 걱정할 필요가 없습니다(스텝 2단계).
(이 MySQL/MariaDB 코드를 sails.js 등으로 변환하는 연습을 독자에게 맡깁니다.)
언급URL : https://stackoverflow.com/questions/32388726/waterline-sails-js-mass-insertion-and-deletion-with-mariadb
반응형
'programing' 카테고리의 다른 글
데이터가 현재 값보다 낮은 값을 갖는 데이터 선택 (0) | 2022.12.29 |
---|---|
--skip-grant-tables로 MySQL을 시작하는 방법 (0) | 2022.12.29 |
MySQL match() again() - 관련성과 컬럼에 따른 순서? (0) | 2022.12.29 |
Java 범용 클래스를 작성할 때 꺽쇠 괄호로 둘러싸인 칠드는 무엇을 의미합니까? (0) | 2022.12.29 |
소나크베 5.5 및 마리아드브 (0) | 2022.12.29 |