MySQL INSERTAR ... CON ACTUALIZACIÓN DE LA TECLA DUPLICADA con django 1.4 para la inserción masiva

Tengo problemas para averiguar MySQL INSERT ... ON DUPLICATE KEY UPDATE con django 1.4.

La tabla en la que estoy intentando insertar registros tiene una clave única (compuesta) de 2 columnas. Los registros que estoy recibiendo provienen de una fuente de terceros y los valores cambiarán con el tiempo, excepto en los campos que forman el conjunto de claves único. Estoy recibiendo 1 ~ 5k registros a la vez, y necesitaría

Actualmente estoy usando Model.objects.bulk_create para inserciones masivas, el rendimiento es realmente sorprendente, ya que generalmente genera una consulta sin importar qué tan grande sea el conjunto de registros. Sin embargo, como mis registros pueden cambiar con el tiempo en el fin de terceros, debo realizar la consulta MySQL INSERT ... ON DUPLICATE KEY UPDATE en el conjunto de registros.

Estoy planeando escribir sentencias de SQL sin procesar y ejecutar usando algo como aquí:

sql = "MySQL INSERT ... ON DUPLICATE KEY UPDATE"

raw_insert(sql)

def raw_insert(sql):
    from django.db import connection, transaction
    cursor = connection.cursor()

    # Data modifying operation - commit required
    cursor.execute(sql)
    transaction.commit_unless_managed()

    return 1

Preguntándome si hay una mejor solución a mi problema. También, ¿cómo sanearé los valores de campo para la inserción en bruto?

Respuestas a la pregunta(2)

Su respuesta a la pregunta