Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    42

    Query mysql con join su 2 tabelle, problemi lentezza

    nota: abbastanza lungo ma sono nei guai
    nota2: penso sia la sezione giusta per un problema con mysql

    ho un problema piuttosto rognoso con mysql che mi sta facendo diventare matto...

    ho 2 tabelle (t_interventi -IN- e t_schedainterventi -SIN-)... nella tabella t_interventi ho un campo IN_schedainterventi che richiama il campo SIN_codice della tabella t_schedainterventi

    codice:
    SIN_id    |     |IN_id
    SIN_codice| <-- |IN_schedainterventi
    una cosa del genere....

    dopo essermi scritto una query abbastanza complessa per avere delle statistiche (sorvolo, ininfluente alla domanda ), ho visto che era lentissima nell'esecuzione (14+ secondi)..e provando la stessa query anche da Mysql query browser ho lo stesso problema di lentezza....

    per fare un test ho poi semplificato la query riducendola all'osso e cioè

    Codice PHP:
    SELECT t_schedainterventi.SIN_Idt_interventi.IN_Idt_schedainterventi.SIN_codice,
     
    t_interventi.IN_SchedaIntervento FROM t_interventi 
    RIGHT JOIN t_schedainterventi 
    ON t_interventi
    .IN_SchedaIntervento t_schedainterventi.SIN_codice
    questa query mi da come risultato esatto (i 17k record nella tabella T_interventi) ma impiega 180+ secondi per eseguire...se importo le tabelle in access ed eseguo una query in access con gli stessi dati (1600 record per t_schedainterventi e 17k per t_interventi che aumentano di almeno 8k record al mese) impiego meno di 2 secondi ad avere la risposta....dopo aver perso mezza serata per capire il problema ho provato (proprio una prova) a cambiare l'engine del db da myisam che aruba mi obbligava ad usare e ho mantenuto a innodb, default di mysql e l'esecuqione della query è passata a circa 50 secondi (cmq esageratamente troppo)...

    per controprova ho importato tutto il db su mssql e usando la stessa query ho la risposta in 0.5 secondi (compresa renderizzazione pagina asp che uso mentre 180 secondi da query browser)...

    cosa sbaglio nella configurazione del database (indici o engine magari)? cosa sbaglio nella query?

    il server locale l'ho installato io, ma ho provato sul server web (preconfigurato in cui ho importato il db) e ho lo stesso risulatato (tempo > 180 sec con myisam)...

    help

    grazie per la lettura se siete arrivati fino a qua

    bio

  2. #2
    Dovresti postare la struttura completa delle tue tabelle...usare il motore InnoDB implica che poi tu sfrutti le potenzialità di questo (ovvero chiavi esterne, etc...) altrimenti è inutile.

    Magari ottimizzando il database puoi avere sicuramente risultati migliori...

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    42
    Originariamente inviato da LeaderGL
    Dovresti postare la struttura completa delle tue tabelle...usare il motore InnoDB implica che poi tu sfrutti le potenzialità di questo (ovvero chiavi esterne, etc...) altrimenti è inutile.

    Magari ottimizzando il database puoi avere sicuramente risultati migliori...
    guarda in allegato, dovrebbe esserci la query per ricreare la tabella (ovviamente senza dati)...

    innodb era una prova e la cosa strana è che mi incrementava le prestazioni (anche se mysql dice che myisam è il suo db performante)....

    ottimizzando in che senso? facendo maintainance-->optimize da mysql admin non cambia nulla...

    intanto grazie, attendo altri aiuti

    bio

    edit: file sql (tasto destro salva come) http://bio.gbservicesnc.it/query.sql

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    42
    piccolo bump, sperando che qualcuno sappia che sto a sbagliare


    bio

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.