Test 7 Supongamos la siguiente serie de comandos: [mysql] CREATE TABLE pruebas ( key1 INT NOT NULL PRIMARY KEY, key2 INT NOT NULL UNIQUE ); INSERT INTO pruebas VALUES (1,1), (2,2); [/mysql] La tabla contiene ahora (1,1) y (2,2). Ahora hacemos [mysql] REPLACE INTO pruebas VALUES (1,3); [/mysql] Pregunta 1: La tabla contiene ahora (1,3) y (2,2). Explica por qué.…
Categoría: Bases de datos
Test rápidos de MySQL – Test 6
Test 6 La siguiente consulta es perfectamente válida y hace lo que se espera de ella: [mysql] SELECT DATE(hora_creacion) AS date, COUNT(*) AS numero_altas FROM altas GROUP BY fecha ORDER BY fecha; [/mysql] En MySQL, podemos ahorrarnos parte de la consulta anterior, y conseguir exactamente el mismo set de resultados. ¿ Qué parte podemos omitir ? Pulsa para Mostrar/Ocultar la…
Test rápidos de MySQL – Test 5
Test 5 Este Test es cortesia de Lasse Christiansen, aparentemente residente de Japón. Imaginemos los siguientes comandos: [mysql] CREATE TABLE test ( id varchar(1) NOT NULL, PRIMARY KEY (id) ); INSERT INTO test VALUES (‘0’), (‘1’), (‘2’), (‘a’), (‘b’); [/mysql] Los INSERT funcionan como deben y el resultado es que ahora tenemos los registros ‘0′, ‘1′, ‘2′, ‘a’ y ‘b’.…
COUNT(*) contra COUNT(col)
¿ Pero eso no es lo mismo ? ¿ Existe alguna diferencia ? Si, existe, y es bastante importante, tanto en resultados como en velocidad. COUNT(*) cuenta registros. Si la tabla es MyISAM, y no fijamos un WHERE, los resultados se calcularñan de forma extremadamente rápida, ya que MyISAM mantiene un contador de registros de toda la tabla. Si fijamos…
Consultas MySQL útiles
Las 10 bases de datos más grandes del servidor [mysql] SELECT count(*) TABLES, table_schema,concat(round(sum(table_rows)/1000000,2),’M’) rows, concat(round(sum(data_length)/(1024*1024*1024),2),’G’) DATA, concat(round(sum(index_length)/(1024*1024*1024),2),’G’) idx, concat(round(sum(data_length+index_length)/(1024*1024*1024),2),’G’) total_size, round(sum(index_length)/sum(data_length),2) idxfrac FROM information_schema.TABLES GROUP BY table_schema ORDER BY sum(data_length+index_length) DESC LIMIT 10; [/mysql]