Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Firebird 3 es más rápido que MySQL (https://www.clubdelphi.com/foros/showthread.php?t=89078)

gasal 23-09-2015 16:23:12

Firebird 3 es más rápido que MySQL
 
Hola , hace unos dias aparecio esta noticia , la cual es muy interesante

Firebird 3 es mucho más rápido que Firebird 2.5.x y también ya es más rápido que MySQL.
Con las nuevas capacidades de seguridad y la gran velocidad que posee Firebird 3, ya no hay excusas para no usarlo en Internet.
Más información (en inglés) se puede encontrar en:
http://www.firebirdnews.org/firebird...col-benchmark/

Quisiera testear los nuevos parametros de firebird 3 , para realizar un test similar
con compresion de datos y accediendo la base via internet , alguien conoce
estas nuevos parametros principalmente el de compresion de datos ?

Gracias de antemano.
Gasal.

MAXIUM 23-09-2015 16:53:59

El problema de esto, es que MySQL viene preinstalado en la gran mayoría de los webhosting. No así Firebird.

Por supuesto hay excepciones, pero no dejan de ser más que esto.

Neftali [Germán.Estévez] 23-09-2015 22:44:25

Hay que tener en cuenta también que ese artículo/comparativa viene de http://www.firebirdnews.org

:D:D

Casimiro Notevi 23-09-2015 22:56:02

Por ahí hay un hilo de hace años en el que se probaban varios sistemas de bases de datos y mysql era más rápido si usaba uno de los sistemas de ficheros que tiene, sin triggers, stored procedures, etc. Pero si activaba el sistema con esos "aditamentos" era más lenta.
Así que no me extraña que esta nueva versión de firebird, muy pensada también para la web, sea más rápida.

RONPABLO 24-09-2015 04:30:17

Además esta nueva versión de firebird trae funciones windows, esto evita un montón de subquerys y se ve reflejado en velocidad

roman 24-09-2015 04:58:26

Naaaa. Firebird está tan muerto como Delphi :D

Por cierto, ¿qué son funciones windows?

// Saludos

mamcx 24-09-2015 05:45:04

Por cierto, el benchmark es acerca del protocol de red/comunicacion de los drivers de conexion, no sobre el uso de FB como motor ;)

Cita:

Empezado por roman (Mensaje 497107)

Por cierto, ¿qué son funciones windows?

// Saludos

Esta es la doc que hay en postgres:

http://www.postgresql.org/docs/curre...al-window.html

Basicamente, son agregados (como GROUP BY) mas flexibles y permiten extender la tabla con columnas que toman en cuenta los valores de la filas anteriores, sin romper el esquema de la consulta.

O mas simplemente: Permite hacer lo de extender una columna en excel, referencia el valor de las filas anteriores+la actual (por ejemplo)

Casimiro Notevi 24-09-2015 09:46:29

De todas formas aún está en versión beta: Firebird 3.0 Beta 2 (unstable)

roman 24-09-2015 17:31:54

Cita:

Empezado por mamcx (Mensaje 497108)
Por cierto, el benchmark es acerca del protocol de red/comunicacion de los drivers de conexion, no sobre el uso de FB como motor ;)

Cada vez que sale una comparativa estridente, poco a poco van saliendo los "asegunes" :p :D

Cita:

Empezado por mamcx (Mensaje 497108)
Esta es la doc que hay en postgres:

http://www.postgresql.org/docs/curre...al-window.html

Basicamente, son agregados (como GROUP BY) mas flexibles y permiten extender la tabla con columnas que toman en cuenta los valores de la filas anteriores, sin romper el esquema de la consulta.

O mas simplemente: Permite hacer lo de extender una columna en excel, referencia el valor de las filas anteriores+la actual (por ejemplo)

Muchas gracias mamcx, desconocía el tópico.

// Saludos

RONPABLO 24-09-2015 21:06:39

Cita:

Empezado por roman (Mensaje 497107)

Por cierto, ¿qué son funciones windows?

// Saludos

imaginemos una tabla a la que le hacemos una consulta:
Código SQL [-]
Select Id, Nombre, Sueldo from tabla where fecha between :f1 and :f2


Cita:

Empezado por ResultadoDelQuery
ID / Nomre / Sueldo
1 / Andres / 200
4 / Carlos / 300
9 / Clara / 450

Se puede decir que ese resultado es una ventana que "mira" algo de la información en una tabla, las funciones ventana son funciones que solo tienen dominio sobre ese resultado y en ellas se puede obtener entre otras cosas, el numero de Columna, el máximo valor o el mínimo valor de esa ventana, la sumatoria, en fin, hay muchas cosas que se pueden ver y acá hablan un poco de ello, por ejemplo normalmente si yo quiero sacar un porcentaje del sueldo en la consulta anterior haría algo como:

Código SQL [-]
Select 
  Id, Nombre, Sueldo,
  sueldo / (select sum(sueldo) from tabala  where fecha between :f1 and :f2) porcentaje
from tabla where fecha between :f1 and :f2

con una función window o ventana sería:

Código SQL [-]
Select 
  Id, Nombre, Sueldo,
  sueldo / sum(salary) over () porcentaje
from tabla where fecha between :f1 and :f2

el sum normalmente debe ser usado en un group by, pero al tener la instrucción over después indica que es una función de ventana don el sum se hará sobre todos los valores de el campo sueldo que arroja la consulta, dentro del paréntesis del over pueden ir variqs clausulas de ordenamiento.

Ahora si vemos los dos querys anteriores notaremos que en el primero hay un subquery en el cual tiene su propia carga de información y se está repitiendo gran cantidad de lo que ya se ha hecho, pero además se está haciendo registro por registro, así pues si la tabla tiene 2 millones de registros y se está devolviendo 3 resultados, entonces se hará 3 veces el mismo query consultando sobre 2 millones de registros de la tabla para devolver el sum que se obtiene de apenas tres registros, mientras que en el segundo query con la función de ventana solo se está haciendo un sum sobre 3 registros lo cual deberá repercutir tremendamente en eficiencia y velocidad

Casimiro Notevi 24-09-2015 21:11:07

Muy interesante, ha quedado muy claro al hablar de "window" y no de "windows", como se habló antes, que hacía pensar en alguna comunicación con el s.o. windows.

RONPABLO 24-09-2015 21:30:38

Otro ejemplo ya usando información al interior del over:

Código SQL [-]

Select 
  Id, 
  Nombre, 
  centroDeCostos,
  Sueldo,
  sueldo / sum(sueldo) over (partition by centroDeCostos) porcentaje
from tabla where fecha between :f1 and :f2

En el query anterior estamos particionando por centro de costos y con esto ahora obtenemos el promedio ya no por el resultado del sum de toda la ventana, si no por la agrupación que diera el centro de costos.


O podemos obtener el valor acumulado del sueldo:

Código SQL [-]

Select 
  Id, 
  Nombre, 
  Sueldo,
  sueldo / sum(sueldo) over () porcentaje,
  sueldo / sum(sueldo) over (order by sueldo) acumulado,
  sueldo / sum(sueldo) over (order by sueldo desc) acumlado_des,
from tabla where fecha between :f1 and :f2


y obtendríamos algo como:
Cita:

ID / Nomre / Sueldo / Porcentaje / Acumulado / acumulado_desc
1 / Andres / 200 / 21 / 200 / 950
4 / Carlos / 300 / 31 / 500 / 750
9 / Clara / 450 / 48 / 950 / 450

RONPABLO 24-09-2015 21:32:58

Cita:

Empezado por Casimiro Notevi (Mensaje 497127)
Muy interesante, ha quedado muy claro al hablar de "window" y no de "windows", como se habló antes, que hacía pensar en alguna comunicación con el s.o. windows.

Si es muy importante quitar ese plural, no caí en cuenta que había puesto windows (la fuerza de la costumbre). De lo contrario se pierde el concepto de una ventana a la información que estamos obteniendo

roman 24-09-2015 21:41:43

Muchas gracias RONPABLO, muy bien explicado.

// Saludos

gasal 28-09-2015 16:27:02

Estimados.
Saben como activar esto , que esta en Firebird-3.0.0_RC1-ReleaseNotes.pdf ?

(CORE-733) Compression of data over the network.
implemented by A. Peshkov

Ello aumentaria mucho la velocidad de uso a traves de internet.

Saludos
Gasal.

Casimiro Notevi 28-09-2015 16:31:43

¿Y eso qué es?


La franja horaria es GMT +2. Ahora son las 02:35:02.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi