我正在使用SQLAlchemy 1.0.0,并希望UPDATE ONLY批量生成一些(更新,如果匹配主键,则不执行任何操作)查询.
我做了一些实验,发现批量更新看起来比批量插入或批量更慢upsert.
能否请你帮我指出为什么它的工作如此缓慢或是否有其他方法/想法来制作BULK UPDATE (not BULK UPSERT) with SQLAlchemy?
下面是MYSQL中的表:
CREATE TABLE `test` (
`id` int(11) unsigned NOT NULL,
`value` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
Run Code Online (Sandbox Code Playgroud)
和测试代码:
from sqlalchemy import create_engine, text
import time
driver = 'mysql'
host = 'host'
user = 'user'
password = 'password'
database = 'database'
url = "{}://{}:{}@{}/{}?charset=utf8".format(driver, user, password, host, database)
engine = create_engine(url)
engine.connect()
engine.execute('TRUNCATE TABLE test')
num_of_rows = …Run Code Online (Sandbox Code Playgroud)