Cómo hago para optimizar esto?
#1

Buenas, he hecho el guardado/cargado de las llaves de los vehículos y bien, funciona, pero al final queda mal repetir el mismo campo que cumple con la misma función para cada llave que se guarda, se que hay una forma de guardar todo en 1 solo campo en la base de datos y con su función se carga/guarda en el GM, a lo que me refiero, así tengo esto:

Код:
Cargado.

InformacionJugador_[playerid][pLlavesCoches][0] = cache_get_field_content_int(0, "LlaveV1");
InformacionJugador_[playerid][pLlavesCoches][1] = cache_get_field_content_int(0, "LlaveV2");
InformacionJugador_[playerid][pLlavesCoches][2] = cache_get_field_content_int(0, "LlaveV3");
InformacionJugador_[playerid][pLlavesCoches][3] = cache_get_field_content_int(0, "LlaveV4");
InformacionJugador_[playerid][pLlavesCoches][4] = cache_get_field_content_int(0, "LlaveV5");
InformacionJugador_[playerid][pLlavesCoches][5] = cache_get_field_content_int(0, "LlaveV6");
InformacionJugador_[playerid][pLlavesCoches][6] = cache_get_field_content_int(0, "LlaveV7");
InformacionJugador_[playerid][pLlavesCoches][7] = cache_get_field_content_int(0, "LlaveV8");

Guardado.

mysql_format(MySQL, Query, sizeof Query, "UPDATE cuentas SET LlaveV1 = '%d', LlaveV2 = '%d', LlaveV3 = '%d', LlaveV4 = '%d', LlaveV5 = '%d', LlaveV6 = '%d', LlaveV7 = '%d', LlaveV8 = '%d' WHERE Usuario = '%e'", InformacionJugador_[playerid][pLlavesCoches][0], InformacionJugador_[playerid][pLlavesCoches][1], InformacionJugador_[playerid][pLlavesCoches][2], InformacionJugador_[playerid][pLlavesCoches][3], InformacionJugador_[playerid][pLlavesCoches][4], InformacionJugador_[playerid][pLlavesCoches][5], InformacionJugador_[playerid][pLlavesCoches][6], InformacionJugador_[playerid][pLlavesCoches][7], GetPlayerNameEx(playerid));
Lo "más molesto" es como queda en la base de datos, muchos campos innecesarios y mal visto.



Alguna forma en dejar todo en 1 campo y que el guardado/cargado no sea tan así.
Reply
#2

Mysql esta diseсado para soportar millones de filas, hacerlo de otra manera, por ejemplo almacenar datos en cadenas como practican muchos es una mala practica ademas de que es mas lento, bбsicamente lo quieres mejor visible a tus ojos, pero como tu lo estбs haciendo ahora no estб mal.

pawn Код:
public OnGameModeInit()
{
    new handle, time;
    handle = mysql_connect("127.0.0.1", "root", "testing", "");
    time = GetTickCount();
    for(new i=0;i<500;i++){
        mysql_query(handle, "INSERT INTO cadena(datos)VALUES('100,100,100,100,100,100,100,100');");
    }
    printf("CADENA: %d milisegundos", GetTickCount() - time);
    //
    time = GetTickCount();
    for(new i=0;i<500;i++){
        mysql_query(handle, "INSERT INTO datos(dato0,dato1,dato2,dato3,dato4,dato5,dato6,dato7)VALUES(100,100,100,100,100,100,100,100);");
    }
    printf("DATOS: %d milisegundos", GetTickCount() - time);
    return 1;
}
1era vuelta
CADENA: 16347 milisegundos
DATOS: 16140 milisegundos

2da vuelta
CADENA: 20292 milisegundos
DATOS: 19158 milisegundos

3ra vuelta
CADENA: 16165 milisegundos
DATOS: 15670 milisegundos

4ta vuelta
CADENA: 15918 milisegundos
DATOS: 15732 milisegundos
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)