반응형
Maria를 사용한 워터라인/Sails.js 대량 삽입 및 삭제DB
Sails.js 앱에 테이블이 있습니다.auctionsBattle.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 |