Try creating INDEX on id column

I think that will do the trick ;)

--Praj

On Mon, 3 Apr 2006 19:07:34 -0600
Ariel Sánchez Mora <[EMAIL PROTECTED]> wrote:

> This table holds latest data from an app:
>  
> mysql> select * from ultimas_respuestas_snmp limit 10;
> +----+----------------+-----------------------+-------------------------+-----------+------------+----------+
> | id | info_oficina   | columna_donde_guardar | info_interfaz           | 
> valorSNMP | nombre_dns | hora     |
> +----+----------------+-----------------------+-------------------------+-----------+------------+----------+
> |  0 | Sucursal Canas | USO_CPU_1min          | "                       | 
> error     | canas      | 18:49:53 |
> |  1 | Sucursal Canas | RAM_LIBRE             | "                       | 
> error     | canas      | 18:49:54 |
> |  2 | Sucursal Canas | ESTADO_ADMIN_1        | TDM 195-2883 ICE        | 1   
>       | canas      | 18:49:55 |
> |  3 | Sucursal Canas | ESTADO_ADMIN_2        | RDSI 669-9010 ICE       | 
> error     | canas      | 18:49:56 |
> |  4 | Sucursal Canas | ESTADO_ADMIN_3        | RDSI_doble 669-9010 ICE | 
> error     | canas      | 18:49:57 |
> |  5 | Sucursal Canas | ESTADO_PROTOCOLO_1    | TDM 195-2883 ICE        | 
> error     | canas      | 18:49:58 |
> |  6 | Sucursal Canas | ESTADO_PROTOCOLO_2    | RDSI 669-9010 ICE       | 
> error     | canas      | 18:49:59 |
> |  7 | Sucursal Canas | ESTADO_PROTOCOLO_3    | RDSI_doble 669-9010 ICE | 5   
>       | canas      | 18:50:00 |
> |  8 | Sucursal Canas | BW_ENTRADA_1          | TDM 195-2883 ICE        | 
> error     | canas      | 18:50:01 |
> |  9 | Sucursal Canas | BW_ENTRADA_2          | RDSI 669-9010 ICE       | 
> error     | canas      | 18:50:02 |
> +----+----------------+-----------------------+-------------------------+-----------+------------+----------+
> 10 rows in set (0.00 sec)
>  
> without the "limit 10"
>  
> 1780 rows in set (0.03 sec)
>  
> the create table:
>  
> ultimas_respuestas_snmp  CREATE TABLE `ultimas_respuestas_snmp` (             
>                            `id` int(4) NOT NULL default '0',                  
>                            `info_oficina` varchar(35) default NULL,           
>                            `columna_donde_guardar` varchar(30) default NULL,  
>                            `info_interfaz` varchar(30) default NULL,          
>                            `valorSNMP` varchar(12) default NULL,              
>                            `nombre_dns` varchar(20) default NULL,             
>                            `hora` varchar(10) default NULL                    
>                          ) ENGINE=MyISAM DEFAULT CHARSET=latin1 
>  
> I cannot use indexes because my dbexpress driver doesn't support it (long 
> story short, I'll change it in the next version).
>  
> Now, I have to make a lot of sequential updates, like
>  
> UPDATE ultimas_respuestas_SNMP SET valorSNMP ="1", hora ="18:47:21" WHERE id 
> ="0";
> UPDATE ultimas_respuestas_SNMP SET valorSNMP ="10", hora ="18:47:22" WHERE id 
> ="1";
> UPDATE ultimas_respuestas_SNMP SET valorSNMP ="1", hora ="18:47:22" WHERE id 
> ="2";
> UPDATE ultimas_respuestas_SNMP SET valorSNMP ="1", hora ="18:47:22" WHERE id 
> ="3";
> UPDATE ultimas_respuestas_SNMP SET valorSNMP ="1", hora ="18:47:23" WHERE id 
> ="4";
> UPDATE ultimas_respuestas_SNMP SET valorSNMP ="1", hora ="18:47:23" WHERE id 
> ="5";
> UPDATE ultimas_respuestas_SNMP SET valorSNMP ="5", hora ="18:47:24" WHERE id 
> ="6";
> UPDATE ultimas_respuestas_SNMP SET valorSNMP ="5", hora ="18:47:24" WHERE id 
> ="7";
> UPDATE ultimas_respuestas_SNMP SET valorSNMP ="7000", hora ="18:47:24" WHERE 
> id ="8";
> .
> .
> .
> UPDATE ultimas_respuestas_SNMP SET valorSNMP ="0", hora ="18:48:38" WHERE id 
> ="1778";
> UPDATE ultimas_respuestas_SNMP SET valorSNMP ="", hora ="18:48:38" WHERE id 
> ="1779";
>  
> This makes my server CPU load top 100% for about 1:20 s. 
>  
> First question: is update the best command for this? I've seen replace that 
> might work too; has anyone played around with something like this before?
>  
> Second: is there a better way of formulating the update command, for this 
> sequence?? Perhaps one that takes advantage of the sequential inserts?
>  
> TIA, all comments welcome. I am a newbie by the way, trying to optimize my 
> first MySQL related program.
>  
> Ariel
> 

--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to