我试图在我的MariaDB10.0.14上执行基准测试,以使用多个线程读取MyISAM表上的数据,并且我继续获得与主键重复输入有关的异常。 MyISAM是否支持使用多个线程进行读取?我使用sysbench进行基准测试,我的配置如下:
Prepare testing dataset
#sysbench --test=/usr/share/doc/sysbench/tests/db/oltp.lua --mysql-table-engine=myisam
--oltp-table-size=1000000 --mysql-db=sbread --mysql-user=testdb --mysql-password=testpw
--mysql-socket=/var/lib/mysql/mysql.sock prepare
Reads
#sysbench --num-threads=1 --max-requests=500000 --test=/usr/share/doc/sysbench/tests/
db/oltp.lua -- oltp-table-size=1000000 --mysql-socket=/var/lib/mysql/mysql.sock
--oltp-read-only --mysql-db=sbread --mysql-user=testdb --mysql-password=testpw run
因此,正在创建的测试数据库为其表提供了MyISAM存储引擎,您可以在"准备测试数据集中看到。当我尝试用单个线程读取时,它运行正常。但是当我尝试访问具有多个线程的数据库(--num-threads = 16)时,就是当我收到以下错误时:
ALERT: mysql_drv_query() for query 'INSERT INTO sbtest1 (id, k, c, pad) VALUES (498360, 567750,
'84578502161-76498916585-15177095459-91229149818-13877895508-00429671145-18341319379-39103937662-
51579802230-43663801413', '79741072395-37018170150-53859605676-72598517156-41247843127')' failed:
1062 Duplicate entry '498360' for key 'PRIMARY'
答案 0 :(得分:0)
您正在使用--oltp-read-only而不是--oltp-read-only = on,因此您没有运行预期的只读基准。