SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#26 25.11.2012 20:15:46

федя
Завсегдатай
Зарегистрирован: 14.11.2012
Сообщений: 33

Re: Халивар VARCHAR против ENUM

Поиск записи по 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 секунд ее писали... Чудеса sad

Отредактированно федя (25.11.2012 20:26:07)

Неактивен

 

#27 25.11.2012 20:32:24

федя
Завсегдатай
Зарегистрирован: 14.11.2012
Сообщений: 33

Re: Халивар VARCHAR против ENUM

Ну и наконец обновление поля по которому создан ключ:
50 раз вот такаяя последовательность:


mysql> update xenum set x1='' where x1='fan marker';        
mysql> update xenum set x1='fan marker' where x1='';        
 

DYNAMIC:
WRITE (50) TIME xenum  = 2.996001 (0.14 - поиск, 0.24 - поиск + запись не ключевого поля)
WRITE (50) TIME xenum  = 2.989104
WRITE (50) TIME xenum  = 2.989576

FIXED:
WRITE (50) TIME xenum  = 2.961483   (0.32 - поиск, 0.41 - поиск + запись не ключевого поля)
WRITE (50) TIME xenum  = 2.991529     
WRITE (50) TIME xenum  = 2.993037

Отредактированно федя (25.11.2012 21:24:47)

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson