 |
Foro de Posicionamiento y Buscadores Aprendiendo a Promocionar Páginas Web. Xeoweb :: Sindicar
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Jorgens Soy de Yahoo!

Registrado: 07 Mar 2004 Mensajes: 954 Ubicación: Cartagena, España
|
Publicado: Dom Feb 28, 2010 1:32 am Asunto: [php+MySQL] Muchos campos cortos o uno solo grande? o caché? |
|
|
Saludos compañeros.
Sigo haciendo experimentos con php y mysql. Sinceramente, estoy apasionado con la cantidad de cosas que se pueden hacer y aplicar en nuestras páginas. El límite prácticamente está en tu imaginación, sin duda alguna.
Tengo una duda (ojalá fuera una, je je je). Imaginaos que tengo una tabla de una base de datos en la que guardo un montón de datos que uso en una plantilla de página web (título, palabras clave, description, elementos del menú, estilos, texto del contenido, títulos, enlaces de adelante y atrás, colores de fondo.....).
Cuando el visitante llega a una página realmente va a una plantilla en el servidor llena de campos. El servidor lee esos campos de la base de datos y devuelve al visitante una página web u otra.
La pregunta es... qué es más eficiente, hacerlo así o crear otra tabla en la que se guarde la totalidad del contenido de la web a mostrar?
En el primer caso digamos que el servidor ha de leer de la tabla unos 30 campos, insertarlos en la plantilla de php y devolver el código html al usuario.
Del segundo modo cada vez que actualizo la base de datos insertando o modificando datos, el servidor recogería todos y los colocaría uno seguido de otro en un solo campo de otra tabla. Cuando el visitante intenta acceder a una página el servidor solo le ha de entregar un campo, muy largo si, pero solo uno.
Cómo lo veis? Qué cargaría menos al servidor?
No se si he conseguido explicaroslo bien.... si es así me avisais, oki?
Un abrazo!! _________________ Jorgens
Como Crear Una Pagina Web :: El Papeleo tras un bebe
Ultima edición por Jorgens el Dom Feb 28, 2010 1:40 am, editado 1 vez |
|
| Volver arriba |
|
 |
Jorgens Soy de Yahoo!

Registrado: 07 Mar 2004 Mensajes: 954 Ubicación: Cartagena, España
|
Publicado: Dom Feb 28, 2010 1:37 am Asunto: |
|
|
mmm.....
Otra opción que ando cabilando es que cada vez que yo actualice o cree nuevos campos, cree mediante código php una secuencia que me pase todo ese conjunto de campos a un archivo html, no? De ese modo solo uso php y mysql cuando estoy trabajando en la base de datos, mientras que las visitas no tiran de la base de datos sino de esos archivos creados. Luego si creo o retoco una página (que como digo consta de varios campos de la base de datos) le doy a un botoncito y el servidor me crea (gracias a alguna función que tendría que programar) el archivo html y... listo.... no?
Sería algo así como una caché de la web... (creo)
Gracias de nuevo. Espero ansioso vuestro punto de vista.
Abrazos! _________________ Jorgens
Como Crear Una Pagina Web :: El Papeleo tras un bebe |
|
| Volver arriba |
|
 |
xaviclave Me gusta MSN!

Registrado: 03 Jul 2007 Mensajes: 427 Ubicación: Barcelona
|
Publicado: Dom Feb 28, 2010 6:44 am Asunto: |
|
|
No tengo mucha experiencia en bases de datos per entiendo que ir a buscar la información de una zona de la base de datos sería lo mejor que ir a o 3.
Sobre si crear un archivo para cada página de los usuarios, al contrario que lo que yo hago, creo que si sería mejor utilizar una plantilla y tirar de la base de datos.
Siempre puedes modificar la plantilla que seguro que necesitarás hacerlo. El tenerlo en varios archivos se te puede convertir en un problema cuando la cosa se haga muy grande aunque de cara al rendimiento siempre conseguirás un consumo de recursos mucho mas bajo. _________________ Crear pagina web Blogs BTT |
|
| Volver arriba |
|
 |
Jorgens Soy de Yahoo!

Registrado: 07 Mar 2004 Mensajes: 954 Ubicación: Cartagena, España
|
Publicado: Dom Feb 28, 2010 11:39 pm Asunto: |
|
|
Gracias Xavi, me alegra leerte tras tanto tiempo.
No no, siempre trabajaría sobre una sola plantilla php así que cualquier modificación solo tengo que hacerla en ese archivo.
Con esa plantilla y la base de datos genero todas las páginas de la web. La pregunta es qué es mejor para no sobrecargar mucho al servidor,
A - si dejar que la plantilla lea digamos 60 datos de una base de datos, para cada página y visita, claro. Creo que es la opción más común en cualquier cms.
B - si tener una función que recoja esos 60 datos y los una en un solo campo de otra tabla. La plantilla en este caso solo llamaría a un solo campo de esa tabla, y contendría todo el código hmtl, claro. Yo como webmaster trabajaría sobre la de los 60 campos y la plantilla leería de la de un solo campo.
C - Si independientemente de las dos opciones anteriores, es mejor aún crear una función que cree los archivos html correspondientes a cada una de las páginas (estáticas, claro, sin login de usuarios ni nada de eso) de la web, que sería lo que verían los visitantes.
La sobrecarga a la hora de añadir información a la base de datos, modificarla, etc, no me preocupa, pues eso es esporádico y liviano (cada vez que añado contenido o modifico el aspecto, por ejemplo) Lo que me preocupa es solo la carga del servidor que ocasionan las visitas (pongamosle para... 20.ooo visitas al dia, por ejemplo).
La opción C, que repito, es independiente de las otras dos (podría tomar A y C o B y C) me parece más segura ante ataques, no?
Disculpad, pero son cosas que no termino de descifrar con lo que leo en foros o leo en libros,
Un saludo!! _________________ Jorgens
Como Crear Una Pagina Web :: El Papeleo tras un bebe |
|
| Volver arriba |
|
 |
xaviclave Me gusta MSN!

Registrado: 03 Jul 2007 Mensajes: 427 Ubicación: Barcelona
|
Publicado: Lun Mar 01, 2010 7:20 am Asunto: |
|
|
No sabria decirte que es lo mejor. Creo que todo pasa por optimizar.
"Yo tengo el caso C" Aunque si te puedo decir que habia tenido un dedicado de un solo núcleo a 1.2Ghz con 1Giga de ram y en condiciones normales no sobrepasaba el 60% de consumo de procesador con 20.000 visitas/100.000 paginas vistas. También piensa en las limitaciones que puedes tener de cara al futuro ya que normalmente los sistemas de archivos tradicionales tienen limitaciones en el número de carpetas y archivos. _________________ Crear pagina web Blogs BTT |
|
| Volver arriba |
|
 |
JustMe Vivo en Xeoweb
Registrado: 27 Sep 2005 Mensajes: 3063 Ubicación: Por ahí....
|
Publicado: Lun Mar 01, 2010 3:15 pm Asunto: |
|
|
En mi opinión, las bases de datos son muy poderosas pero también frágiles, para que ellas no "sufran", se corrompan o se caigan llevandose de paso al server, es importante que los índices estén bien pensados y establecidos y que las consultas sean optimizadas.
Piensa si realmente necesitas una tabla para guardar datos de configuración, si sólo necesitas una línea de esa tabla muy probablemente no necesites ni una tabla, ni una base de datos para guardar esa información, aun cuando siempre definas un índice y hagas las consultas sobre ese índice, si cada vez que construyes una página vas a necesitar abrir una conexión, hacer una consulta y cerrar una conexión, no me parece muy eficiente, personalmente uso archivos .ini para datos de configuración y de esta manera no tengo que forzar mi base de datos, pero para gustos los colores. _________________ PHP Data uri fier
Blog Gratis |
|
| Volver arriba |
|
 |
Jorgens Soy de Yahoo!

Registrado: 07 Mar 2004 Mensajes: 954 Ubicación: Cartagena, España
|
Publicado: Lun Mar 01, 2010 3:47 pm Asunto: |
|
|
Cuando quiero crear una página web desde cero compro el dominio, organizo el hosting, creo una base de datos y subo al servidor una plantilla y un formulario básicamente. A partir de ahí, accedo al formulario y desde él creo todas las páginas de la web. Los campos que uso son, todos los necesarios, title, description, contenido, posición en el menú..... Me facilita mucho la vida pues puedo crear una página de la web en 2 minutos con solo entrar en el panel, cumplimentar esos campos y pulsar un botón de Aceptar. Automáticamente aparece en la web y en el sitemap. Los menús se actualizan automáticamente, los botones de adelante y atras... y todas esas tonterias.
No se si sabría hacerlo igual de facil (sin necesidad de ftp ni nada) sin usar bases de datos... Antes creaba las webs "a mano", pero tras esto la verdad que he descubierto otro universo y... es comodísimo. Lo que ya no se es cuánto sufre mi servidor, pues solo lo tengo aplicado en un par de webs muy nuevas y con pocas visitas aún.
Hay alguna manera de medir cuanto de cargado está el servidor por una base de datos concreta? Tienen los servidores algún "termometro" para medir y poder ver realmente si lo que hago sudar al servidor merece la pena o no? Tengo un VPS.
Qué es eso de los archivos .ini JustMe? Me puedes iniciar en ese tema lo justo para seguir investigando, plis?
Tras leerte entiendo que la opción C puede estar bien, pues solo usaría la base de datos yo como webmaster y luego los visitantes tirarían de archivos html creados a partir de esa base de datos, no?
Muchas gracias por los comentarios, de veras. _________________ Jorgens
Como Crear Una Pagina Web :: El Papeleo tras un bebe |
|
| Volver arriba |
|
 |
xaviclave Me gusta MSN!

Registrado: 03 Jul 2007 Mensajes: 427 Ubicación: Barcelona
|
Publicado: Lun Mar 01, 2010 4:51 pm Asunto: |
|
|
| JustMe escribió: | En mi opinión, las bases de datos son muy poderosas pero también frágiles, para que ellas no "sufran", se corrompan o se caigan llevandose de paso al server, es importante que los índices estén bien pensados y establecidos y que las consultas sean optimizadas.
Piensa si realmente necesitas una tabla para guardar datos de configuración, si sólo necesitas una línea de esa tabla muy probablemente no necesites ni una tabla, ni una base de datos para guardar esa información, aun cuando siempre definas un índice y hagas las consultas sobre ese índice, si cada vez que construyes una página vas a necesitar abrir una conexión, hacer una consulta y cerrar una conexión, no me parece muy eficiente, personalmente uso archivos .ini para datos de configuración y de esta manera no tengo que forzar mi base de datos, pero para gustos los colores. |
Vaya pues no iba yo muy desencaminado. Es decir. No utilizar bases de datos puede ser bueno en algunos casos.
Creo que hace falta una definición de para que sirven las bases de datos. Cierto? Son para buscar algo que no sabemos donde está exactamente.
En cambio que tenemos que usar cuando sabemos que es lo que vamos a buscar y donde está? En nuestro caso un simple archivo con el nombre del usuario.ini o.txt o . lo que sea que contenga toda la información del usuario y su contenido. Seguro que la carga del servidor bajaria bastante.
| Jorgens escribió: |
Hay alguna manera de medir cuanto de cargado está el servidor por una base de datos concreta? Tienen los servidores algún "termometro" para medir y poder ver realmente si lo que hago sudar al servidor merece la pena o no? Tengo un VPS.
Qué es eso de los archivos .ini JustMe? Me puedes iniciar en ese tema lo justo para seguir investigando, plis?
Tras leerte entiendo que la opción C puede estar bien, pues solo usaría la base de datos yo como webmaster y luego los visitantes tirarían de archivos html creados a partir de esa base de datos, no?
Muchas gracias por los comentarios, de veras. |
En tu caso para medir lo cargado del servidor solamente has de ver que porcentaje de memoria está consumiendo y de cpu. No se si phpsysinfo podria ser una buena opción, seguramente hay mas.
Los archivos ini creo que quiere decir archivos de cualquier tipo, es decir en lugar de almacenar la informacion en la base de datos almacenarla en un archivo de forma ordenada que luego lo abras y lo leas también en el mismo orden. Cada usuario tendria un archivo. _________________ Crear pagina web Blogs BTT |
|
| Volver arriba |
|
 |
Jorgens Soy de Yahoo!

Registrado: 07 Mar 2004 Mensajes: 954 Ubicación: Cartagena, España
|
Publicado: Lun Mar 01, 2010 5:30 pm Asunto: |
|
|
| Cita: | | No utilizar bases de datos puede ser bueno en algunos casos. |
Por supuesto, o mejor dicho, usarla, puede ser bueno en algunos casos, es decir, no deja de usarse si no hace falta, sino que se usa si es necesario.
| Cita: | | Creo que hace falta una definición de para que sirven las bases de datos. Cierto? Son para buscar algo que no sabemos donde está exactamente. |
No creo que la wikipedia acepte esa definición Xavi, je je. En principio incluso en una base de datos "necesaria" y compleja, imagino que se DEBE saber exáctamente dónde está cada información. Yo más bien pienso que se debe usar cuando conviene organizarla de modo que podamos rescatarla fácilmente y cuando es tanta o tan diversa que no es fácil conservarla en otro medio y rescatarla rápidamente (como por ejemplo en un fichero de papel dentro de un armario).
| Cita: | | un simple archivo con el nombre del usuario.ini o.txt o . lo que sea que contenga toda la información del usuario y su contenido. Seguro que la carga del servidor bajaria bastante. |
Soy primerizo aún en eso del php y mysql, pero me da la impresión de que esto es más lento y hacetrabajar mucho más al servidor. Si la información que guardamos en un fichero se usa tal cuál nos hace falta luego quizás tengas/tengais razón, pero si en lugar de usar toda la información del fichero solo necesitamos un dato del principio, luego otro dato del final, luego otro de en medio.... habría que crear una función que abra el fichero (mientras está abierto quizás el navegador de otro visitante también quiera leer y no creo que pueda), que recorra la información hasta encontrar lo buscado, que la rescate, y que cierre el fichero de nuevo. Sin contar con el tema de la seguridad, permisos a otorgar a esos ficheros, etc... yo creo que no es lo más viable.
Repito que lo que yo guardo es el nombre de usuario y contraseña de un visitante, sino toooooda la información de una página web.
| Cita: | | En tu caso para medir lo cargado del servidor solamente has de ver que porcentaje de memoria está consumiendo y de cpu. |
Me refiero a la carga del servidor, del microprocesador. También claro el consumo de Ram, pero lo quisiera ver tan solo de esa base de datos en concreto, no del resto de las tablas que tengo para esas cosas. Se puede de algún modo?
| Cita: | | No se si phpsysinfo podria ser una buena opción, seguramente hay mas. |
No conocía eso del phpsysinfo. Voy a mirarlo más a fondo, quizás pueda servirme, gracias.
Gracias a ambos dos! _________________ Jorgens
Como Crear Una Pagina Web :: El Papeleo tras un bebe |
|
| Volver arriba |
|
 |
Afelix Me gusta MSN!

Registrado: 03 Feb 2006 Mensajes: 445 Ubicación: Toledo
|
Publicado: Lun Mar 01, 2010 6:09 pm Asunto: |
|
|
En mi opinión, la forma que expone Jorgens en crear páginas de forma rápida utilizando plantillas es correcta,
utilizar MySQL con varios campos para los distintos elementos de una página Web es lo más acertado en vez de utilizar un solo campo,
el tener varios campos te permite crear o modificar más elementos de una página de forma cómoda y rápida.
Yo añadiría un sistema de caché para reducir la carga del servidor:
http://www.baluart.net/articulo/sistema-de-cache-con-php
Lo que es muy importante es el diseño de la base de datos, el crear INDICES te permite acceder a los datos más rápido,
pero cuidado… a más índices mayor el tamaño de la base de datos, los INSERT y UPDATE son más lentos con índices. _________________ Directorio de enlaces BudiWeb |
|
| Volver arriba |
|
 |
Jorgens Soy de Yahoo!

Registrado: 07 Mar 2004 Mensajes: 954 Ubicación: Cartagena, España
|
Publicado: Lun Mar 01, 2010 7:28 pm Asunto: |
|
|
| Cita: | | utilizar MySQL con varios campos para los distintos elementos de una página Web es lo más acertado en vez de utilizar un solo campo |
En una tabla tengo esos datos, por separado. Luego con una función php los uno todos para formar el codigo html completo y los uniría (es una de las ideas) en un solo campo de una segunda tabla.
| Cita: | | el tener varios campos te permite crear o modificar más elementos de una página de forma cómoda y rápida. |
Efectivamente, lo que guardo en la segunda tabla es todo el codigo que proviene de los distintos campos de la primera tabla. Si quiero retocar lo hago en la primera tabla y vuelvo a usar la función que me actualiza el codigo completo de esa página en la segunda tabla que es la que lee el servidor para mostrar al navegador del visitante. no se si me explico.
Genial, gracias por el enlace. Esta noche me lo estudio.
| Cita: | Lo que es muy importante es el diseño de la base de datos, el crear INDICES te permite acceder a los datos más rápido,
pero cuidado… a más índices mayor el tamaño de la base de datos, los INSERT y UPDATE son más lentos con índices. |
Tomo nota. Ya he leido sobre diseño de bases de datos y sobre optimización y ando aplicándolo.
Gracias por los comentarios amigo. _________________ Jorgens
Como Crear Una Pagina Web :: El Papeleo tras un bebe |
|
| Volver arriba |
|
 |
JustMe Vivo en Xeoweb
Registrado: 27 Sep 2005 Mensajes: 3063 Ubicación: Por ahí....
|
Publicado: Lun Mar 01, 2010 9:39 pm Asunto: |
|
|
Es una traducción de mi script de caché a PHP orientado a objetos, aunque muy básico, desde que lo publiqué por primera vez en 2005, el mio ya cuenta con muchas mejoras e incluso permite hacer doble caché, es decir caché de sólo una parte de la página, lo que si es que el mío aun es procedural y no orientado a objetos, en principio porque no hace falta, así lo conservo más eficiente con respecto especialmente a memoria.
Respecto al tema original, insisto en mi opinión, a menos que se tenga una web muy simple y con pocas visitas nunca es buena idea usar una tabla en una base de datos a la cual se tenga que acceder cada vez que se carga la página y sólo para obtener siempre los mismos datos del mismo renglón (o renglones) de datos que no necesitan conectar y desconectar de una base de datos. De hecho el cacher original que escribí en 2005 fue por esa razón, para no forzar la base de datos porque es frágil y muy susceptible de hacer kaput en webs de alto tráfico.
En estos casos, el sistema de archivos es mucho más eficiente y es mejor guardar configuraciones en un archivo editable on u offline y simplemente incluirlo usando variables o constantes o parsearlo con una función como parse_ini_file() de php. _________________ PHP Data uri fier
Blog Gratis |
|
| Volver arriba |
|
 |
foley Me gusta MSN!
Registrado: 08 Ene 2008 Mensajes: 368 Ubicación: Galicia
|
|
| Volver arriba |
|
 |
|
| Respuesta Rápida y Acciones |
| |
|
|
Página 1 de 1
Puede publicar nuevos temas en este foro No puede responder a temas en este foro No puede editar sus mensajes en este foro No puede borrar sus mensajes en este foro No puede votar en encuestas en este foro
|
|
Logo diseñado por iLevante
Powered by phpBB © 2001, 2009 phpBB Group
|