Gravatar de Armonth

Big Brown, la gran escapada.

Ayer sufrí un percance en mi vida que sera difícil de superar, he tenido que enfrentarme a lo que más temía — no, no, no era Chuck Norris — y era un BIG BROWN (Gran marrón) con todas las palabras: ¿Por qué a mi?…

Me llaman a las siete de la mañana (Sí, a las 7 de la mañana: ¡Me cago en su estampa!) un conocido para ver si podía ayudarle con una base de datos de… ¡a la mierda joder!, ¡que son las 7!, ¡a estas horas no me levanto ni aunque se me este quemando la casa!. Me despierto tres horas después y le pregunto por el Messenger (Que sea un contacto del messenger en vez del jabber o del irc significa que o es un amigo o es un pesado, o las dos cosas) qué es lo que quiere…

Aquí viene la petición más absurda que he escuchado en años: Ayuda para optimizar una base de datos y el “script” que inserta los datos en la misma. Él sabe que NO soy programador (hago alguna chorrada en PHP, alguna sentencia en MySQL, pero de ahí a siquiera crear algo decente…), mucho menos con conocimientos para encontrar puntos débiles en código ajeno u optimizar la estructura de una BB.DD en MySQL… pero esperad… eso no es lo peor…

Lo peor es cuando aún recordándole esto me dice cosas que me dejan de piedra, algunos puntos suculentos:

  • No es una base de datos en MySQL, yo me imaginaba que sería entonces algo más “tocho” como PostgreSQL o Oracle… ¡y un huevo!, era MS SQL Server, la primera en la frente; Si ya sé poco sobre BB.DD me llama por un software privativo.
  • La base de datos es “grande” tiene 100 megabytes (¿Grande? ¡anda ya! casi cualquier SGDB mueve BB.DD de cientos de megas e incluso gigabytes sin perdidas apreciables de rendimiento).

Al preguntarle sobre el problema… era exceso de carga de CPU por culpa de la BB.DD (picos cuando había demasiadas peticiones a la vez), ¿quizá muchas visitas?… no… menos de 2000 “páginas vistas” al día, o estaba ejecutando el servidor en un Lentium I o fallaba algo, le pido que haga un “equivalente” (ya que yo no entiendo de bases de datos ajenas a MySQL) a mostrar el décimo registro entero (no sé si me explico: mysql> SELECT * FROM tabla WHERE ID=10;) y le tarda unos 20 segundos en responder…

Sin tener prácticamente idea de bases de datos eso ya me parece raro: O el PC es muy muy lento, está muy saturado o algo falla:

  • La base de datos no usa ningún equivalente a índices…
  • Cada petición tiene que leer de forma secuencial los 100 megabytes para obtener un sólo dato (por ejemplo el ID)…

¿Sigo?, la verdad, me da palo… pero eso significa que para cargar la página principal del sitio (12 “querys”) tiene que leer 12 veces 100MB: 1.2GB. O la estructura es muy pobre o tiene algo muy desconfigurado o yo que sé…

Mi opinión personal: Yo no soy ningún experto de nada, pero al menos no voy vacilando de conocimientos para luego hacer chapuzas como ESTÁ. Por suerte para mi calma espiritual el sujeto en cuestión es sólo “conocido” y desde hoy desaparece de mi vida…

Lección: La próxima vez que alguien me pida ayuda por IRC y me diga “Dime tú MSN”: Patada en los cojones.

Nota: La etiqueta “SAT” no es Servicio de Atención Técnica si no Servicio de Atención a Tocapelotas…

6 Comentarios (feed)

  1. Gravatar de Armonth Armonth nos comenta:

    Un apunte adicional: Lo de "la gran escapada" es porque ESTOY USANDO esta entrada como vía de escape anti-stress…

    Martes, 23 de Mayo/2006 @ 1:34

  2. Gravatar de guillem guillem nos comenta:

    Si te sirve de consuelo a mi una vez me hicieron lo mismo pero con un Access que tardaba como el doble y además se corrompia. Los mandé al SAT de Microsoft y les pedí que no me volvieran a saludar cuando me vieran por la calle X’-DDD

    Martes, 23 de Mayo/2006 @ 7:47

  3. Gravatar de Kazka Kazka nos comenta:

    Yo directamente por haberme despertado a las 7 de la mañana para resolverle sus problemas, le habría borrado directamente de mi lista de contactos del msn X-D

    Martes, 23 de Mayo/2006 @ 9:35

  4. Gravatar de Armonth Armonth nos comenta:

    Kazka, el problema es que tenía mi número de movil (¿Para que cojones se lo dí? Ni me acuerdo) así que o lo mandas a la mierda primero o pasa del Messenger al movil…

    Guillem buena idea, es lo SUYO realmente pero a algunos se nos olvida (Yo ya doy por supuesto que esta gente usa software pirata y solamente deseo que en los servidores hagan auditorías como debe ser)…

    Martes, 23 de Mayo/2006 @ 10:53

  5. Gravatar de rings_akira rings_akira nos comenta:

    Se me ocurre que el campo ID no fuera númerico o clave principal, con lo que no estubiera indexado, y tubiera que buscarlo cada vez. Pero vaya tela que alguien esté haciendo bases de datos así XD

    Martes, 23 de Mayo/2006 @ 17:49

  6. Gravatar de Armonth Armonth nos comenta:

    No he conocido los detalles Akira, pero apostaría a que no es sólo eso: Es que NO usa índices ni ningún tipo de clave principal, se lo pregunte y me dijo algo "ezo qué e lo que é"… ugh…

    Martes, 23 de Mayo/2006 @ 22:28

Comentarios cerrados