Spanish (SOLUCIONADO)Duda Mysql Facil

TheFalcon

Active Member
Licensed User
Longtime User
Buenos Días Señores/as , una duda Facilita

Tengo una Aplicación que consulta, guarda y actualiza en MYSQL , sin problemas , la tengo perfecta,mi aplicación al abrir carga una noticia , y a veces tarda unos segundos,
LA DUDA:

¿a la hora de usarla mas usuarios tardara aun mas ?, al ser mas gente accediendo a la Base de datos

¿hay algún otro modo mejor que MYSQL?

¿Si hay algún otro modo, alguien tiene el enlace a un Post ?

Gracias y perdonad las molestias ;)
 

josejad

Expert
Licensed User
Longtime User
Hola:

No he probado otro modo, pero en teoría MySQL está preparado para servir muchas peticiones.
No sé de qué forma accedes al servidor, si es con jRDC2 leí algún post que hablaba de que era muy eficiente.
El servidor MySQL, ¿es casero? ¿es de pago? ¿serían pocos, cientos o miles de usuario simultáneos?
No sé, entiendo que depende de muchos factores.

saludos,
 

TheFalcon

Active Member
Licensed User
Longtime User
Es de pago el hosting de la mysql, en teoría no serian muchos usuarios a la vez, ya que no es una cosa constante , en principio solo entran o por voluntad propia , o cuando les mande una notificación por Firebase para avisar de que hay nuevas noticias, el modo de conexión que uso es el que aprendí del foro mediante httpjob
 

josejad

Expert
Licensed User
Longtime User
Es de pago el hosting de la mysql, en teoría no serian muchos usuarios a la vez
Entonces no creo que el servidor tarde más en servirte las peticiones cuando lo usen más usuarios, tendrías que ver de dónde vienen esos segundos que tarda en mostrarte la noticia quizás mostrando en los log's la hora de inicio y fin de los procesos que vayas realizando.
Ya quizás algún compañero pueda ayudarte más con esto.
 

TheFalcon

Active Member
Licensed User
Longtime User
Ok probare a mirar en el log eso, no me preocupa que tarde X segundos en mostrar la noticia la preocupación era si al ser mas usuarios ese tiempo aumentaria. Gracias
 

bgsoft

Well-Known Member
Licensed User
Longtime User
Hola:

Como bien te ha dicho José J. Aguilar, pon en los log, hora de inicio y final, pero yo además cuando quiero saber con precisión donde pierdo tiempos, creo una variable global (un Long) y cuando quiero medir un proceso le paso la hora en ticks, cuando acabo el proceso resto a la hora actual el valor de esa variable y la pongo en un log, asi se los milisegundos que ha tardado.

B4X:
Sub Process_Globals
Dim TemporalTiempoParaChequeos As Long
........
.......

' Antes de un proceso
TemporalTiempoParaChequeos= DateTime.Now
' Llamo al proceso

' Desde otra parte puedo consultar el tiempo (o dentro de ese proceso)
Log("Tiempo transcurrido ms : " & (DateTime.Now-TemporalTiempoParaChequeos))

' fin del proceso
Log("Tiempo transcurrido ms : " & (DateTime.Now-TemporalTiempoParaChequeos))

' Inicio otro poceso
TemporalTiempoParaChequeos= DateTime.Now
' Etc

' Si quieres saber los segundos transcurridos
Log("Tiempo transcurrido seg : " & (DateTime.Now-TemporalTiempoParaChequeos)/DateTime.TicksPerSecond)

Saludos
 

TheFalcon

Active Member
Licensed User
Longtime User
Gracias, ya te voy a preguntar otra cosa que estoy probando, ¿como consigo identificar que una consulta esta mal?

Me explico.

en MYSQL Meto el dni de los usuarios a Mano por ejemplo

Cuando accedo comprueba que la ID del móvil este en la MYSQL.

Si ESTA la id, coge y entra perfectamente, pero si la ID no existe, no te deja entrar, me da respuesta [] , yo quiero recoger un false o algo para poder decirle al usuario, no puedes arrancar por que la ID no existe, o no puede arrancar por que el dni y la id no coinciden

lo compruebo If res = "[]" Then .......... pero creo que este modo es un poco cutre, y no encuentro algo por el foro


B4X:
Sub JobDone(Job As HttpJob)
    ProgressDialogHide
    If Job.Success Then
        Dim res As String
        res = Job.GetString
        Log("Response from server: " & res)

    If Socios=True Then '
        
            If res = "[]" Then
            
            End If
    End If

    
    
        Dim parser As JSONParser
        'res=res.SubString2(res.IndexOf("["),res.IndexOf("]"))
        parser.Initialize(res)
        Select Job.JobName

Case consulta_socios
            
                Dim CONSULTA As List
                CONSULTA = parser.NextArray 'returns a list with maps
                For i = 0 To CONSULTA.Size - 1
                    Dim m As Map
                    m = CONSULTA.Get(i)   
            
                    idmovil_mysql=m.Get("id_movil") 'coge la fecha de mysql
                    dni_mysql=m.Get("dni")
                StartActivity(Panel_Socios)

                Next


B4X:
Sub bt_Socios_click

    If IsConnected = True Then ' si hay conexion a internet
        
        
        ExecuteRemoteQuery("SELECT * from Socios where id_movil= '"&MI_ID&"'",consulta_socios)
        
    Socios = True
    
    Else ' si no hay internet, arranca normal
        
    End If
End Sub
 

josejad

Expert
Licensed User
Longtime User
Hola TheFalcon:

Por favor, ahora que me fijo, usa algo más descriptivo como asunto del hilo, así será más fácil que sea de ayuda para otras personas. Y también muy importante, una sóla pregunta por hilo. Si tienes dudas nuevas, crea otro hilo con el nuevo asunto.

me da respuesta []
Si te da esa respuesta cuando no encuentra el usuario, creo que es correcto como lo pones. Yo por ejemplo si hago una consulta y no devuelve ningún registro (por ej. porque no coinciden usuario y/o contraseña), compruebo si el resultado es = "".
Si en tu caso tu consulta devuelve [] cuando está vacío, yo entiendo que es correcto como lo haces.

saludos,
 
Top