Поиск записи по X1 и обновление поля которое не является КЛЮЧОМ:
mysql> update xenum set x50='fan marker' where x1='fan marker';
Query OK, 0 rows affected (0.01 sec)
Rows matched: 670 Changed: 0 Warnings: 0
Для того чтобы оценить накладные расходы на запись одного поля обновим в таблице сразу несколько полей. Количество обновляемых полей указано в SETROW.
К примеру, для SETROW равному 4 запрос был такой:
mysql> update xenum set
x51='fan marker',
x52='fan marker',
x53='fan marker',
x54='fan marker',
where x1='fan marker';
Query OK, 0 rows affected (0.01 sec)
Rows matched: 670 Changed: 0 Warnings: 0
FIXED + KEY
WRITE (100) TIME xenum (SETROW=1) = 0.241142 (0.14 Время поиска)
WRITE (100) TIME xenum (SETROW=2) = 0.354657
WRITE (100) TIME xenum (SETROW=3) = 0.469319
WRITE (100) TIME xenum (SETROW=4) = 0.582782
WRITE (100) TIME xenum (SETROW=5) = 0.698368
WRITE (100) TIME xenum (SETROW=6) = 0.812095
WRITE (100) TIME xenum (SETROW=7) = 0.925244
WRITE (100) TIME xenum (SETROW=8) = 1.040136
WRITE (100) TIME xenum (SETROW=9) = 1.154206
WRITE (100) TIME xenum (SETROW=10) = 1.27303
DYNAMIC + KEY:
WRITE (100) TIME xenum (SETROW=1) = 0.412617 (0.32 Время поиска)
WRITE (100) TIME xenum (SETROW=2) = 0.52511
WRITE (100) TIME xenum (SETROW=3) = 0.639668
WRITE (100) TIME xenum (SETROW=4) = 0.753732
WRITE (100) TIME xenum (SETROW=5) = 0.868064
WRITE (100) TIME xenum (SETROW=6) = 0.983018
WRITE (100) TIME xenum (SETROW=7) = 1.096478
WRITE (100) TIME xenum (SETROW=8) = 1.210342
WRITE (100) TIME xenum (SETROW=9) = 1.325028
WRITE (100) TIME xenum (SETROW=10) = 1.438252
FIXED+NO_KEY
WRITE (100) TIME xenum (SETROW=1) = 9.141169 (9.26 Время поиска было - странно)
WRITE (100) TIME xenum (SETROW=2) = 9.243465
WRITE (100) TIME xenum (SETROW=3) = 9.356436
WRITE (100) TIME xenum (SETROW=4) = 9.424552
WRITE (100) TIME xenum (SETROW=5) = 9.53667
WRITE (100) TIME xenum (SETROW=6) = 9.670124
WRITE (100) TIME xenum (SETROW=7) = 9.765333
WRITE (100) TIME xenum (SETROW=8) = 9.884114
WRITE (100) TIME xenum (SETROW=9) = 10.000771
WRITE (100) TIME xenum (SETROW=10) = 10.157245
DYNAMIC+NOKEY
WRITE (100) TIME xenum (SETROW=1) = 224.953973 (106 - время поиска)
WRITE (100) TIME xenum (SETROW=2) = 224.98173
WRITE (100) TIME xenum (SETROW=3) = 225.099055
WRITE (100) TIME xenum (SETROW=4) = 225.272705
WRITE (100) TIME xenum (SETROW=5) = 225.382617
WRITE (100) TIME xenum (SETROW=6) = 225.536589
WRITE (100) TIME xenum (SETROW=7) = 225.617573
WRITE (100) TIME xenum (SETROW=8) = 226.118165
WRITE (100) TIME xenum (SETROW=9) = 225.891893
WRITE (100) TIME xenum (SETROW=10) = 226.215584
DYNAMIC+NOKEY за 106 секунд нашли запись, а затем 118 секунд ее писали... Чудеса
Отредактированно федя (25.11.2012 20:26:07)