Post by ventalinebox » Sat Jan 25, 2014 1:21 am

Version OpenCart 1.5.6.X (nose si se puede aplicar anteriores pero seguro que algo parecido es)

DE VERDAD LEERLO Y HACERLO NO OS LLEVARA TANTO TIEMPO

Hola, quiero compartir mi experiencia, porque he de decir que opencart va volando pero en el momento que la cargas con unas cuantas categorias y artículos su carga se hace muy lenta.
No volverse loco cambiando historias que mysql, php, script de java,la web en general etccccc, que también esta bien cambiar algo del tema cache, buffer y demas.

El problema real es de la base de datos, la cual los indices brillan por su ausencia. Algunos de ustedes se diran cual son los indices pues un ejemplo imaginen buscar una guia telefónica desordenada, imposible verdad, pues a la base de datos no es que sea imposible es que se hace lenta.

Para modificar indices o INDEX mirar en la web que hay muchos ejemplos y no es complicado, lo complicado es donde, lo cual yo se le voy a decir, aunque al final del escrito relataré una pequeña base por si ustedes quieren mejorarlo o hacer mas cambios que les venga bien.

* Nota puede haber tablas que no tienen dependiendo los modulos instalados.



Nuevo Indice:


**** TODOS LOS INDICES DEBEN SER CREADOS DE MANERA INDIVIDUAL NO AGRUPADOS*********** me explico habrá tablas que hay que crear mas de un indice esto no quiere decir que hay que agruparlos sino que hay que crearlos de manera individual ::)

Tabla category campo parent_id

Tabla category_description campo language_id

Tabla category_path campos path_id y level

Tabla category_to_store campo store_id

Tabla ka_import_profiles campo params

Tabla ka_product_import campo token

Tabla manufacturer_to_store campo store_id

(Tabla product es muy relativo pero donde veamos que tiene una referencia y muchas filas (que sean consultadas) es conveniente)
Tabla product campos manufacturer_id, date_added, date_modified y image
Tabla product campos model, sku, upc, ean,(como veis donde tengais la referencia etcc)

Tabla product_description campo language_id

Tabla product_to_category campo category_id

Tabla product_to_store campo store_id

Tabla setting campo store_id, serialized

Tabla setting campo group y key

Tabla url_alias campo query y keyword

Tabla zone campo country_id

Tabla zone campo name

***Nota los indices FULLTEXT no se pueden utilizar con UTF8-Unicode y si queréis asignar este indice algún campo este debe ser varchar, char o text. Yo lo asigne con UTF8-xxxci y no vi mejoría.*****

Yo realizando estos cambios me funciono bien. En las tablas product_xxx dependiendo donde tengáis atributos y demás también podéis crear mas indices yo no los he creado porque no tengo :laugh: .

Tener en cuanta que para crear un indice debe estar acompañado de muchas filas muchos datos no se puede poner indice a campos que luego no se utilizan en consultas como comparadores o filtros, no es lógico. Porque no es lógico poner un indice a una descripción si esta no se va a comparar con nada y a parte por el tamaño de la misma ??? .

Así que con estas pautas espero haber ayudado y contribuido a estos problemas. Lo digo por amplia experiencia y un dolor de cabeza muy grande después de tener todo instalado con mas de 40000 artículos. Hasta que me di cuenta que el problema era este porque lo demás va de miedo eso si creo que podemos mejorar en SEO.

Espero que para próximas versiones se realicen tome encuenta estos detalles, nunca lo sabremos mejor que ellos...


Un Saludo y no ser malos O0 :laugh: .
Last edited by ventalinebox on Tue Feb 04, 2014 3:10 am, edited 2 times in total.

Newbie

Posts

Joined
Sat Jan 25, 2014 12:22 am

Post by celestial » Sun Jan 26, 2014 8:15 am

Excelentísimo, habría que hacer un sql con las instrucciones de creación automatica de estos índices

Celestial - Martín Abel Rosales
WhatsApp: 50671482211
Email: martinrosales2012@hotmail.com
Skype: martin.abel.rosales
San José , Costa Rica


User avatar
Expert Member

Posts

Joined
Sat Mar 20, 2010 4:19 am
Location - Costa Rica

Active Member

Posts

Joined
Fri Mar 29, 2013 8:46 pm


Post by Miguel2008 » Mon Jan 27, 2014 7:39 pm

Aporto mi colaboración, la verdad que los tiempos mejoran con la primera parte, aun me queda la segunda.
Los indices y los drop por si los queréis probar. ;D

Code: Select all

#Tabla category campo parent_id
CREATE INDEX i_parent_id ON category (parent_id);

#Tabla category_description campo language_id
CREATE INDEX i_category_description ON category_description (language_id);

#Tabla category_path campos path_id y level
CREATE INDEX i_category_path on category_path (path_id,level);

#Tabla category_to_store campo store_id
CREATE INDEX i_category_to_store on category_to_store (store_id);

#Tabla manufacturer_to_store campo store_id
CREATE INDEX i_manufacturer_to_store on manufacturer_to_store (store_id);

#Tabla product campos manufacturer_id, date_added, date_modified
CREATE INDEX i_product on product (manufacturer_id, date_added, date_modified);

#Tabla product campos model, sku, upc, ean,(como veis donde tengais la referencia etc) y con tipo FULLTEXT (si el campo es de caracteres no de números)
CREATE FULLTEXT INDEX i_product_fulltext on product (model, sku, upc, ean);

#Tabla product_description campo language_id
CREATE INDEX i_product_description on product_description (language_id);

#Tabla product_to_category campo category_id
CREATE INDEX i_product_to_category on product_to_category (category_id);

#Tabla product_to_store campo store_id
CREATE INDEX i_product_to_store on product_to_store (store_id);

#Tabla setting campo store_id, serialized
CREATE INDEX i_setting on setting (store_id, serialized);

#Tabla url_alias campo query con tipo FULLTEXT
CREATE FULLTEXT INDEX i_url_alias on url_alias (query);# 6936 filas afectadas.

#Tabla zone campo country_id
CREATE INDEX i_zone on zone (country_id);

#Tabla zone campo name y code con tipo FULLTEXT
CREATE FULLTEXT INDEX i_zone_fulltext on zone (name,code);
Los drop index por si lo queréis dejar igual que antes, y las pruebas con imágenes aquí, por si me llevo algún click en la publi (la vida del programador es así de dura) . :laugh:

http://www.codigojavaoracle.com/desarro ... -opencart/

Mejorar la velocidad en opencart

Espero que os valga.
P.D; ventaonline, si me das tu nombre y si quieres te nombro en el post ya que es idea tuya... como quieras. :D

Programación Opencart | Desarrollo web
El mejor sitio dónde comprar vino online
Comprar vino online
Tienda online juguetes de adultos
Precios con IVA
Las copas de vino y sus tipos
Tienda de suplementos deportivos


Active Member

Posts

Joined
Fri Mar 29, 2013 8:46 pm


Post by ventalinebox » Thu Jan 30, 2014 8:00 am

Había que hacer algo al respecto, y lo hemos conseguido. Mi nombre es como mi negocio muchas gracias, pero la idea es de todos solo nos queda mejorarla y completarla. O0

Newbie

Posts

Joined
Sat Jan 25, 2014 12:22 am

Post by xavi_cr » Mon Mar 10, 2014 3:25 am

Hola soy un poco nulo con la base de datos alquien me puede explicar como creo los indices porfavor gracias por adelantado.

yo intento añadir este codigo haciendo una consulta a la base de datos pero no me deja me dice que no existe la categoria

Code: Select all

    #Tabla category campo parent_id
    CREATE INDEX i_parent_id ON category (parent_id);

    #Tabla category_description campo language_id
    CREATE INDEX i_category_description ON category_description (language_id);

    #Tabla category_path campos path_id y level
    CREATE INDEX i_category_path on category_path (path_id,level);

    #Tabla category_to_store campo store_id
    CREATE INDEX i_category_to_store on category_to_store (store_id);

    #Tabla manufacturer_to_store campo store_id
    CREATE INDEX i_manufacturer_to_store on manufacturer_to_store (store_id);

    #Tabla product campos manufacturer_id, date_added, date_modified
    CREATE INDEX i_product on product (manufacturer_id, date_added, date_modified);

    #Tabla product campos model, sku, upc, ean,(como veis donde tengais la referencia etc) y con tipo FULLTEXT (si el campo es de caracteres no de números)
    CREATE FULLTEXT INDEX i_product_fulltext on product (model, sku, upc, ean);

    #Tabla product_description campo language_id
    CREATE INDEX i_product_description on product_description (language_id);

    #Tabla product_to_category campo category_id
    CREATE INDEX i_product_to_category on product_to_category (category_id);

    #Tabla product_to_store campo store_id
    CREATE INDEX i_product_to_store on product_to_store (store_id);

    #Tabla setting campo store_id, serialized
    CREATE INDEX i_setting on setting (store_id, serialized);

    #Tabla url_alias campo query con tipo FULLTEXT
    CREATE FULLTEXT INDEX i_url_alias on url_alias (query);# 6936 filas afectadas.

    #Tabla zone campo country_id
    CREATE INDEX i_zone on zone (country_id);

    #Tabla zone campo name y code con tipo FULLTEXT
    CREATE FULLTEXT INDEX i_zone_fulltext on zone (name,code);

Newbie

Posts

Joined
Mon Mar 10, 2014 3:21 am

Post by Miguel2008 » Mon Mar 10, 2014 5:24 pm

Hola,
Tienes que añadir el prefijo que tengas en tus tablas, el que has puesto cuando creaste la tienda opencart. sorry si no quedo claro. ;)
Saludos,

Programación Opencart | Desarrollo web
El mejor sitio dónde comprar vino online
Comprar vino online
Tienda online juguetes de adultos
Precios con IVA
Las copas de vino y sus tipos
Tienda de suplementos deportivos


Active Member

Posts

Joined
Fri Mar 29, 2013 8:46 pm


Post by todosistemascom » Sat Mar 22, 2014 9:33 pm

Hola chicos mi pagina carga lenta pero no logro ubicar donde crear los indices en que carpeta si me ayudar les agradezco soy nuevo en esto o si alguien lo puede hacer por mi también podemos cuadrar un pago $


Posts

Joined
Sat Mar 22, 2014 9:28 pm

Post by jorobado32 » Tue Mar 25, 2014 5:32 pm

Hola a mi me pasa algo parecido, lo veo muy interesante, pero no se si lo hago bien, o como compruebo que lo he realizado, entro en phpadmin, pincho en la base de datos, luego en generar consulta, pego una consulta de las que habeis puesto y ejecutar consulta pero no devuelve ningun mensaje, como deberia quedar la base da datos para saber que ya tiene el indice puesto, podeis poner una imagen please?

Active Member

Posts

Joined
Sat Mar 10, 2012 12:24 am
Location - Spain

Post by celestial » Tue Mar 25, 2014 11:45 pm

jorobado32 wrote:Hola a mi me pasa algo parecido, lo veo muy interesante, pero no se si lo hago bien, o como compruebo que lo he realizado, entro en phpadmin, pincho en la base de datos, luego en generar consulta, pego una consulta de las que habeis puesto y ejecutar consulta pero no devuelve ningun mensaje, como deberia quedar la base da datos para saber que ya tiene el indice puesto, podeis poner una imagen please?
Tenes este ejemplo, lo que pasa contigo es que lo estas haciendo a nivel de base de datos y es válido también:

#Tabla category campo parent_id
CREATE INDEX i_parent_id ON category (parent_id);

A la tabla categoría le estas creando un índice, entra A LA TABLA (category) haciendo click en ella, te muestra datos si existen y si está vacia te muestra los campos (estructura), dale en la parte que dice estructura y ahí veras los campos y en la parte de abajo hay mas información, hay una parte que dice index, dale ahí y te mostrara los índices que tenga esa tabla en particular, si ya le diste a la línea de comando de arriba y no te ha mostrado un error significa que el índice ha sido creado.

Celestial - Martín Abel Rosales
WhatsApp: 50671482211
Email: martinrosales2012@hotmail.com
Skype: martin.abel.rosales
San José , Costa Rica


User avatar
Expert Member

Posts

Joined
Sat Mar 20, 2010 4:19 am
Location - Costa Rica

Post by jorobado32 » Wed Mar 26, 2014 1:19 am

Gracias Martin

Active Member

Posts

Joined
Sat Mar 10, 2012 12:24 am
Location - Spain

Post by TERO » Wed Apr 16, 2014 3:37 am

Muchisimas gracias!!
Se notaaa!!

New member

Posts

Joined
Fri Sep 20, 2013 6:03 pm
Who is online

Users browsing this forum: No registered users and 4 guests