Configuración para un mejor performance en apache

Febrero 21, 2008 at 8:24 pm (Desarrollo Web General, WAS, ajax, html)

Que tal a todos se preguntara porque hay tan poco tiempo entre los post que he publicado, esto porque ya tengo preparada la información, por lo general redacto el articulo y después lo publico, bueno en fin en este post les dejare una de las posibles configuración para mejorar el rendimiento de una aplicación web atraves del Apache, espero encuentren este mini artículo de utilidad.

 

Para
obtener un mayor rendimiento de nuestras aplicaciones he llegado
através de la información que proporciona yahoo con el
yslow para firefox a la siguiente configuración del apache
para producción, esta configuración es muy útil
si estás construyendo una aplicación con AJAX, o en si
para cualquier tipo de aplicación.

Estas
lineas de configuración montan el cache en apache, agregan
compresión a los responses del servidor por medio del deflate,
y agrega la cabecera expires para guardar cierto tipo de archivos del
lado del cliente.

Para
modificar la configuración del apache tenemos que modificar el
archivo httpd.conf

#montar
modulo de cache para el apache

LoadModule
cache_module modules/mod_cache.so

<IfModule
mod_cache.c>

<IfModule
mod_disk_cache.c>

CacheRoot
“C:/Archivos de programa/Apache Software
Foundation/Apache2.2/cache”

CacheSize
1000000

CacheEnable
disk /ebcomm2

CacheDirLevels
5

CacheDirLength
3

CacheDefaultExpire
3600

CacheIgnoreCacheControl
On

CacheMaxExpire
31536000

</IfModule>

</IfModule>

#
Configuracion del modo deflate y gzip para compresion de datos

SetOutputFilter
DEFLATE #filtro por el que saldran los responses

SetInputFilter
DEFLATE #filtro con el que se tomaran los request

BrowserMatch
^Mozilla/4 gzip-only-text/html #tipo de compresion de acuerdo al
navegador

BrowserMatch
^Mozilla/4\.0[678] no-gzip

BrowserMatch
\bMSI[E] !no-gzip !gzip-only-text/html

SetEnvIfNoCase
Request_URI \

#Cargar
modulos para agregar header expires a los archivos

LoadModule
expires_module modules/mod_expires.so

ExpiresActive
On #Activa el expires header

ExpiresByType
application/x-javascript “now plus 1 years 1 minutes”
#guarda en cache los archivos tipo application/x-javascript

ExpiresByType
image/gif “now plus 1 years 1 minutes”

ExpiresByType
image/jpeg “now plus 1 years 1 minutes”

ExpiresByType
text/css “now plus 1 years 1 minutes”

ExpiresByType
image/png “now plus 1 years 1 minutes”

ExpiresByType
text/js “now plus 1 years 1 minutes”

ExpiresByType
text/javascript “now plus 1 years 1 minutes”

Permalink Dejar un comentario

SQL Best Practices

Febrero 21, 2008 at 8:22 pm (otros)

 Que tal Buen día a todos, hoy me dí a la tarea de escribir un poco sobre la utilización de SQL en general quizá no abunde mucho en el tema pero espero que los comentarios les sean de utilidad al planear sus querys.

Al
trabajar con SQL ya sea SQL Server, Oracle, o MySQL tenemos que tener
en cuenta ciertos puntos considerados como mejores prácticas
sin importar sobre que servidor estemos trabajando, esto nos ayudara
a optimizar nuestros tiempos en la base de datos y generar código
mas legible y mantenible, los puntos considerados como best practice
son los que a continuación les menciono.

1.-
Siempre utiliza joins explicitos, es decir si queremos hacer un INNER
JOIN tecleamos o nos aseguramos de ponerlo así, INNER JOIN y
no con un simple JOIN, tampoco se debe de usar los coma JOIN, si se
quiere utilizar se debe de utilizar un CROSS JOIN así ya se ha
hecho consientemente esa decisión, además las
condiciones de un JOIN deben de ir en un ON o en un USING, las
condiciones de un JOIN no deben de ir en el WHERE.

2.-
Siempre utiliza parantésis para separar tus consultas así
sera más fácil distinguirlas por ejemplo

WHERE
(X=1) AND (Y=2)

WHERE
X=1 AND Y=2

3.-
Siempre hay que definir los nombres de los campos, no hay que
utilizar SELECT *, o el INSERT INTO tabla VALUES.

4.-Siempre
utiliza el timestamp del servidor, los servidores web pueden tener
fechas distintas o pueden ocasionar problemas con las fechas.

5.-
Los reportes por lo general tienen el mayor cuello de botella en el
tráfico de red, si se va a recibir información es mejor
recibirla en partes,

6.-
Limitar el uso de subconsultas correlacionadas, a menudo pueden ser
sustituidos con un JOIN.

7.-
Los JOIN no son necesariamente recursos intensos si se cuenta con
buena indexación, la mayor parte del tiempo un esquema
desnormalizado sin JOIN termina siendo peor que un esquema
normalizado con JOINs.

8.-
Trata de siempre escribir las instrucciones con mayusculas para poder
hacer una distinción en nuestros querys.

Espero
que esta información les sea de utilidad.

Saludos.

Permalink Dejar un comentario