2017-02-11 1 views
0

나는 python connector pymongo와 pymysql, 특히 insert 함수를 사용하여 MongoDb와 MySQL을 테스트하고있다. 간단한 그리고 사전, 6 열pymongo insert 대 pymysql insert

connection = pymysql.connect(host='127.0.0.1', 
        user='admin', 
        password='toto', 
        db='cqt', 
        charset='utf8mb4', 
        cursorclass=pymysql.cursors.DictCursor) 

    cursor = connection.cursor() 
    sqlRequest = """INSERT INTO `cqt`.`myTable` (`a`,`b`) VALUES """ 


    for data in datas : sql += data.getSQL() + "," # 2000 rows 
    deltaT = time.clock() 
    cursor.execute(sql) 
    deltaT = time.clock() - deltaT 

데이터는 다음과 같습니다

client = MongoClient('localhost', 27017) 
    db = client['local'] 
    collection = db['cqt']    

    for i in range (0,10): 
     datas = [ {'a' : 1, 'b':2" }, {'a' : 3, 'b':4" }, ...] # 2000 dicts 
     data = [ bson.son.SON(d) for d in datas] 
     deltaT = time.clock() 
     collection.insert_many(data) 
     deltaT = time.clock() - deltaT 

와 MySQL을 위해 : pymongo 버전은 3.4이며, pymysql은 0.7.9이며, 파이썬 내 코드가 몽고에 보이는 3.5

입니다 문자열 키와 int 값. 계수로 델타 T 변수 (2000 개 항목을 삽입하는 데 필요한 시간), 나는 그 몽고는 MySQL을보다 훨씬 느립니다 찾을 수 놀랐을 플롯 할 때 은 10 insert duration results

I가

하지 않을

여기서 벤치 마크를 수행하고 필요로하는 용도로 데이터베이스 성능을 평가하십시오. 그러나 자바에서 작성된 다른 테스트 나 MySQL과 MongoDB 사이의 웹 벤치 마크에서 보면 파이썬에 대한 나의 결과는 내가 기대했던 것이 아니다. MySQL과 Mongo를 삽입 할 때 상당히 비슷한 퍼포먼스가 있어야하며, Mongo의 성능도 더 좋아야합니다.

따라서, pymongo 커넥터의 속도가 느립니까? 성능 향상을 위해 코드 또는 MongoDB에서 수정해야하는 매개 변수가 있는지 알고 계십니까? MongoDB의 성능이 더 좋습니다.

답변

0

실제로 MongoDB Management 서비스와 같은 도구를 사용하여 통계를 수집 한 다음 병목 현상이 있는지 확인해야한다고 생각합니다. multiprocessing를 사용하고 절대적으로 더 나은 성능을해야합니다 document.You를 삽입 할 수 병렬 파이썬 스크립트를 실행하는

  • 시도 :

    그리고 여기가 내 조언이다.

    이 부분은 example입니다.

  • 쓰기 성능을 최대화하려면 샤딩이 좋은 방법입니다.

  • 디스크 입출력 속도를 확인하십시오. 아마도 SSD를 시도 할 수 있습니다.

자세한 내용은 write Operation performance을 참조하십시오.

희망이 도움이됩니다.

+0

답변 해 주셔서 감사합니다. 다중 처리가 트릭을 만들었습니다. – Setoh