찾다

 >  Q&A  >  본문

node.js - node-mysql 插入多条数据

我有100条数据,怎么用node插入到mysql在中啊,

我找了一种这样的但是不好

 var query = 'insert into news set ?';  
 connection.query(query,{   
     title : 'node',   
     content : 'node',   
     nameConpany : 'woman',
     time :'1512151'
}

我的数据结构是这样{{“title ”,“content ”,“nameConpany ”,“time ”},{“title ”,“content ”,“nameConpany ”,“time ”},......}求怎么做

黄舟黄舟2863일 전793

모든 응답(2)나는 대답할 것이다

  • ringa_lee

    ringa_lee2017-04-17 16:35:51

    트랜잭션 루프를 사용하여 삽입하고 삽입이 실패할 경우 롤백

    < /p>

    mysql 모듈, Connection.beginTransaction은 트랜잭션을 수행하는 것입니다

    그런 다음 들어오는 배열에서 루프 삽입이나 업데이트 작업을 수행하는 함수를 여기에 캡슐화합니다. 한 항목이 실패하면 롤백하고 모든 것이 정확하면 커밋합니다.

    회신하다
    0
  • PHP中文网

    PHP中文网2017-04-17 16:35:51

    문서에 소개

    < /p>

    귀하의 가치 대상인 경우

    <코드>var d = [{
    xxx: 에,
    xxx: ㄴ,
    xxx:c
    },{
    xxx: 에,
    xxx: ㄴ,
    xxx:c
    },{
    xxx: 에,
    xxx: ㄴ,
    xxx:c
    }];
    
    //객체를 순수 배열로 변환
    var 값 ​​= [];
    d.forEach(함수(n, i){
        var _arr = [];
        for(var m in n){
            _arr.push(n[m]);
        }
        value.push(_arr);
    })
    

    그냥 배열이면 더 간단할텐데

    var 값 ​​= [
    [1,2,4],
    [5,1,7]
    ];
    
    var sql = "xxx(a,b,c) 값에 삽입하시겠습니까?";
    
    mysql.query(sql, [values], function (err, 행, 필드) {
        콜백(err, 행);
    });
    

    일괄적으로 삽입할 때는 동시에 삽입하는 것이 가장 좋습니다. 쿼리 성능이 순환되면 큰 영향을 미치게 됩니다.

    다음은 인터넷에서 찾은 테스트 결과입니다

    Innodb 엔진

    InnoDB는 MySQL에 트랜잭션(커밋), 롤백(롤백) 및 충돌 복구 기능(충돌 복구 기능)을 갖춘 트랜잭션 안전(ACID 호환) 테이블을 제공합니다. InnoDB는 행 잠금(행 수준 잠금) 및 외래 키 제약 조건(FOREIGN KEY 제약 조건)을 제공합니다.

    InnoDB는 대용량 데이터베이스 시스템을 처리하도록 설계되었으며 CPU 활용도는 다른 디스크 기반 관계형 데이터베이스 엔진과 비교할 수 없습니다. 기술적으로 InnoDB는 MySQL 배경에 배치된 완전한 데이터베이스 시스템입니다. InnoDB는 데이터 및 인덱스 캐싱을 위해 메인 메모리에 전용 버퍼 풀을 구축합니다.

    테스트 환경

    맥북 에어 12mid apache2.2.26 php5.5.10 mysql5.6.16

    총 1백만 개의 데이터

    삽입 후 데이터베이스 크기는 38.6MB(인덱스 없음), 46.8MB(인덱스 포함)입니다.

    인덱스가 없는 단일 삽입에 소요된 총 시간: 229초 최대 메모리: 246KB
    인덱스가 있는 단일 삽입에 소요된 총 시간: 242초 최대 메모리: 246KB
    인덱스가 없는 일괄 삽입에 소요된 총 시간: 10초 최대 메모리: 8643KB
    인덱스가 있는 일괄 삽입에 소요된 총 시간: 16초 최대 메모리: 8643KB
    인덱스가 없는 트랜잭션 삽입에 소요된 총 시간: 78초 최대 메모리: 246KB
    인덱스가 있는 트랜잭션 삽입에 소요되는 총 시간: 82초 최대 메모리: 246KB
    인덱스가 없는 로드 데이터 삽입에 소요되는 총 시간: 12초 최대 메모리: 246KB
    인덱싱된 로드 데이터 삽입에 소요되는 총 시간 : 11초 최대 메모리: 246KB
    MyIASM 엔진

    MyISAM은 MySQL의 기본 스토리지 엔진입니다. 디자인이 간단하고 전체 텍스트 검색을 지원합니다.

    테스트 환경

    맥북 에어 12mid apache2.2.26 php5.5.10 mysql5.6.16

    총 100만 개의 데이터

    삽입 후 데이터베이스 크기는 19.1MB(색인 없음), 38.6MB(색인 포함)

    인덱스가 없는 단일 삽입에 소요된 총 시간: 82초 최대 메모리: 246KB
    인덱스가 있는 단일 삽입에 소요된 총 시간: 86초 최대 메모리: 246KB
    인덱스가 없는 일괄 삽입에 소요된 총 시간: 3초 최대 메모리: 8643KB
    인덱스가 있는 일괄 삽입에 소요된 총 시간: 7초 최대 메모리: 8643KB
    인덱스가 없는 데이터 삽입에 소요된 총 시간: 6초 최대 메모리: 246KB
    로드 인덱스가 있는 데이터 삽입 총 소요 시간: 8초 최대 메모리: 246KB

    회신하다
    0
  • 취소회신하다