Ciao a tutti,
avrei necessita di sveltire un bel po' una select che seleziona un 21.000 records in un campo select.
Ho provato ad inserire indici etc. ma più di tanto non si guadagna in velocità.
Questa è la semplicissima select. Devo levare l' ORDER BY ?? Ho provato anche ad usare USE INDEX (....) ma nada
SELECT article_id, concat(codart, " - ", descrizione) as descri_item
FROM articles
ORDER BY codart, descrizione
Allegata tabella e indici attivi
Grazie
Select molto lenta in campo select
Regole del forum
Nel forum è vietato fare pubblicità senza avere l'autorizzazione dello staf di Netspecial.
Nel forum è vietato fare pubblicità senza avere l'autorizzazione dello staf di Netspecial.
-
- Messaggi: 116
- Iscritto il: 06 ott 2014, 08:56
Select molto lenta in campo select
- Allegati
-
- indexing.jpg (121.19 KiB) Visto 4767 volte
Re: Select molto lenta in campo select
L'ordinamento per "descrizione" sicuramente rallenta molto e non ha molto senso.
-
- Messaggi: 116
- Iscritto il: 06 ott 2014, 08:56
Re: Select molto lenta in campo select
Salve,
ho levato anche l'ORDER BY del tutto ma non migliora di molto.
Se faccio la stessa query con SQL usando phpmyadmin ci mette un attimo.
Levando il SELECT2 e area relativa la velocità torna ...'quasi' normale
Ho paura che il SELECT2 faccia dei giri che rallentano parecchio l'estrazione.
Speriamo di no perchè il select2 è una bella funzionalità
ho levato anche l'ORDER BY del tutto ma non migliora di molto.
Se faccio la stessa query con SQL usando phpmyadmin ci mette un attimo.
Levando il SELECT2 e area relativa la velocità torna ...'quasi' normale
Ho paura che il SELECT2 faccia dei giri che rallentano parecchio l'estrazione.
Speriamo di no perchè il select2 è una bella funzionalità
Re: Select molto lenta in campo select
Probabilmente è lenta l'interpretazione dell'html (evidentemente molto grande).
In questo caso una soluzione è quella di aggiungere dei "where" in modo che non vengano elencati mai tutti i 21000 record.
Anche per l'utente, non deve essere molto comodo lavorare su un campo select con così tante opzioni.
Quindi: mettendo una o due select di filtro, prima della tua select, puoi definire meglio i dati che interessano.
Ad esempio scegliendo prima la categoria merceologica.
In questo caso una soluzione è quella di aggiungere dei "where" in modo che non vengano elencati mai tutti i 21000 record.
Anche per l'utente, non deve essere molto comodo lavorare su un campo select con così tante opzioni.
Quindi: mettendo una o due select di filtro, prima della tua select, puoi definire meglio i dati che interessano.
Ad esempio scegliendo prima la categoria merceologica.
Re: Select molto lenta in campo select
ovvio che se lavori sotto phomadmin ci metti meno , ha un accesso diretto rispetto a PDO.
Uno degli errori che ho notato spesso è l ignorare l esistenza delle viste . quando si usano tabele in lettura sono estremamente comode e permetotno grandi , enormi risparmi di tempo. Oltre ciò permettono attività che in via naturale SC ( e non solo) non permette, per esempio certi ordinamenti online .
Usando la vista il lavoro sporco viene fatti in fase di inserimento aggiornamento della riga, un tempo di "ventilazione" tutto sommato banale , per contro hai disponibili i record formattati come vuoi senza perdere tempo in preparazione , oltre ad una molto piu interessante gestioen della sicurezza.
Prova quindi con una view potresti avere belle sorprese
altra cosa , il concat che usi dovresti sostituirlo con il concat_ws , nel tuo caso dovrebbe essere leggermente piu veloce.
tornando alle view nel tuo caso risparmi il tmepo del concato eprchè sarebe eseguito a tmepo di aggiornamento del record originale , insomma quando leggi ti trovi tutto già pronto con fortissmo risparmio anche di memoria .
una giusta programmazione si ottiene bilanciando il laoro tra programma e dababase
Uno degli errori che ho notato spesso è l ignorare l esistenza delle viste . quando si usano tabele in lettura sono estremamente comode e permetotno grandi , enormi risparmi di tempo. Oltre ciò permettono attività che in via naturale SC ( e non solo) non permette, per esempio certi ordinamenti online .
Usando la vista il lavoro sporco viene fatti in fase di inserimento aggiornamento della riga, un tempo di "ventilazione" tutto sommato banale , per contro hai disponibili i record formattati come vuoi senza perdere tempo in preparazione , oltre ad una molto piu interessante gestioen della sicurezza.
Prova quindi con una view potresti avere belle sorprese
altra cosa , il concat che usi dovresti sostituirlo con il concat_ws , nel tuo caso dovrebbe essere leggermente piu veloce.
tornando alle view nel tuo caso risparmi il tmepo del concato eprchè sarebe eseguito a tmepo di aggiornamento del record originale , insomma quando leggi ti trovi tutto già pronto con fortissmo risparmio anche di memoria .
una giusta programmazione si ottiene bilanciando il laoro tra programma e dababase
Rino Lo Turco
Consulente Informatico; Analista e Sviluppatore; ex IT Manager; Cons. Direzionale di Organizzazione; Consulente Tecnico legale; Esperto protezione dati personali; Internet Service Provider
felice utente e fruitore di ScriptCase
Consulente Informatico; Analista e Sviluppatore; ex IT Manager; Cons. Direzionale di Organizzazione; Consulente Tecnico legale; Esperto protezione dati personali; Internet Service Provider
felice utente e fruitore di ScriptCase
-
- Messaggi: 116
- Iscritto il: 06 ott 2014, 08:56
Re: Select molto lenta in campo select
Ciao, grazie e scusa il ritardo nella risposta,
sicuramente ci proverò usando una vista e ws_concat pure
sicuramente ci proverò usando una vista e ws_concat pure
Chi c’è in linea
Visitano il forum: Semrush [Bot] e 5 ospiti