[MySQL] ThreadQuery, consulta lentísima
#1
Buenas noches, tengo un pequeño problema y no sé a que se debe, la cosa es que estoy utilizando MySQL, y cambié el PrepareQuery a ThreadQuery debido al freezeo que se siente en el servidor, pero estoy pasando todo a ThreadQuery e igual se siente el delay cuando me estoy registrando, el tiempo de las consultas al INSERTAR DATOS o al SELECCIONAR es el siguiente:

Código:
[Zombie Plague] Tiempo: 0.841009.
[Zombie Plague] Tiempo: 0.793083.
[Zombie Plague] Tiempo: 0.805566.
[Zombie Plague] Tiempo: 0.781452.
[Zombie Plague] Tiempo: 0.822002.

Probé en phpmyadmin y el tiempo de la consulta es el siguiente:

Código:
INSERT INTO MyTable (id, name) VALUES ("5", "JORGE")
1 fila insertada. (La consulta tardó 0.0029 segundos.)

Este código utilizo.

Código PHP:
static query[256], data[2], time[32];
            
get_time("%d/%m/%Y - %H:%M:%S"time31);
            
            
data[0] = id;
            
data[1] = SQL_DATA_INSERT_REGISTER;
            
            
formatex(querycharsmax(query), "INSERT INTO %s (name, password, date_register) VALUES (^"%s^", ^"%s^", ^"%s^")"
            
SQL_TABLEg_user_name[id], g_user_password[id], time);
            
            
SQL_ThreadQuery(g_sql_htuple"SQL_DataHandled"querydata2);

case 
SQL_DATA_INSERT_REGISTER:
        {
            static 
szquery[128], idata[2];
            
idata[0] = data[0];
            
idata[1] = SQL_DATA_REGISTER;
            
            
formatex(szquerycharsmax(szquery), "SELECT MAX(id) FROM %s"SQL_TABLE);
            
SQL_ThreadQuery(g_sql_htuple"SQL_DataHandled"szqueryidata2);
            
            
chat_color(data[0], "%s !yTiempo: %f."SZPREFIXqueutime);
        }
        case 
SQL_DATA_REGISTER:
        {
            if (
SQL_NumResults(query))
            {
                
g_user_id[data[0]] = SQL_ReadResult(query0);
                
g_user_register[data[0]] = 1;
                
g_rank_global SQL_ReadResult(query0);
                
                
chat_color(0"%s !yBienvenido !t%s!y, sos la cuenta registrada número !g#%d!y."SZPREFIXg_user_name[data[0]], g_user_id[data[0]]);
                
SQL_FreeHandle(query);
                
                
remove_task(data[0] + TASK_SAVE);
                
set_task(300.0"save_task"data[0] + TASK_SAVE__, .flags "b");
                
                static 
menu[128];
                
format(menucharsmax(menu), "\y¿Mostrar el menú de habilidades?^n^n\r1. \wSí^n\r2. \wNo");
        
                
show_menu(data[0], (1<<0)|(1<<1), menuFM_NULLENT"Show View Habs From Register");
            } 
Responder
#2
Tuve un problema parecido, el único cambio que me ayudo fue cambiar servidor de la bd a la argentina (Antes estaba en el exterior) .. Tal vez es tu mismo problema.

Saludos,
cLAANS.-
Mi unico plugin.
Tutorial de niveles.

Ayudo, pero no de la manera que quieren, si quieren aprender les servirá lo mio, para pedir el codigo en bandeja tienen la sección 'Pedidos'

(09/11/2017, 09:30 PM)SoundBlaster escribió: Espera y llamo a los power rangers para que me digan la linea de error
Responder
#3
(09/10/2018, 04:20 PM)cLAANS escribió: Tuve un problema parecido, el único cambio que me ayudo fue cambiar servidor de la bd a la argentina (Antes estaba en el exterior) .. Tal vez es tu mismo problema.

Saludos,
cLAANS.-

La base de datos está alojada en, cpanel.hostinger.com.ar no sé si está permitido poner links externos, en fin, cuando alojaste el servidor en otra base de datos, no tuviste problemas al uzar PrepareQuery?
Responder
#4
(09/10/2018, 06:11 PM)Cristian escribió:
(09/10/2018, 04:20 PM)cLAANS escribió: Tuve un problema parecido, el único cambio que me ayudo fue cambiar servidor de la bd a la argentina (Antes estaba en el exterior) .. Tal vez es tu mismo problema.

Saludos,
cLAANS.-

La base de datos está alojada en, cpanel.hostinger.com.ar no sé si está permitido poner links externos, en fin, cuando alojaste el servidor en otra base de datos, no tuviste problemas al uzar PrepareQuery?

Hostinger usa servidores lejanos.

Uso el modulo de destro: https://amxmodx-es.com/Thread-Modulo-MyS...ght=Modulo

Saludos,
cLAANS.-
Mi unico plugin.
Tutorial de niveles.

Ayudo, pero no de la manera que quieren, si quieren aprender les servirá lo mio, para pedir el codigo en bandeja tienen la sección 'Pedidos'

(09/11/2017, 09:30 PM)SoundBlaster escribió: Espera y llamo a los power rangers para que me digan la linea de error
Responder
#5
el phpMyAdmin te está devolviendo solamente el tiempo que el proceso de MySQL demora en procesar tu query y alojar el resultado en memoria, listo para enviar el response por el socket y el tiempo que estás calculando desde Pawn es, ese mismo tiempo + el tiempo que demoran en trasnferir la respuesta desde tu servidor MySQL, hasta tu gameserver. El tiempo de proceso de la query es ~el mismo, la diferencia la tenés en la transferencia de datos.

Si ponés los dos servidores (base de datos y gameserver) en el mismo equipo o en la misma red, vas a reducir muchísimo esos tiempos. Sino, mínimamente en el mismo país y con poca latencia entre servidores también va a ayudar, pero no tanto como lo primero.
[Imagen: paypalqr.png]
Responder
#6
El tiempo que demora, puede perjudicar los datos de los usuarios?
Responder
#7
(09/10/2018, 10:03 PM)Cristian escribió: El tiempo que demora, puede perjudicar los datos de los usuarios?
Eso depende de tu lógica a nivel código.
[Imagen: paypalqr.png]
Responder
#8
Lo mejor que podes hacer si usas mysql es buscar un proveedor en argentina que tenga los servidores acá ya que hostinger te limita a 500 consultas por hora a mi por lo menos no me alcanzo ademas de la demora que tiene la consulta que le haces a la db.
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)