Questione : Come ottimizzo queste domande di MySQL

Utilizzo il PHP & MySQL nel mio applicazione Web:

1. Che cosa sarebbe un attrezzo libero per aiutarlo a scoprire il queries

2. La mia domanda principale: Qui sono le domande che uso e voglio sapere ottimizzarli: il

1. SELEZIONA od.id COME orgdetailsid, od.departmentid, od.teamleaduserid,
(u.ufname PRESCELTO COME orgfname dagli utenti u DOVE u.uid=od.orgid) COME orgfname,
(u.ulname PRESCELTO COME orglname dagli utenti u DOVE u.uid=od.orgid) COME orglname,
u.ufname COME teamleadfname, u.ulname COME teamleadlname, u.uemail, i organization_details od del
FROM di dd.department_name, i department_details dd, gli utenti u IN CUI
AND dd.status='Y di od.status='Y ED ORDINE di dd.id=od.departmentid E di od.teamleaduserid=u.uid da department_name; il

2. SELEZIONA il profile_of, (department_name PRESCELTO dai department_details DOVE id=profile_of) COME Department_Name,
COUNT (*) ViewCount A PARTIRE da view_profile_count IN CUI STATUS='Y E "
GROUP del dept_profile " del profile_type= da profile_of ORDER da ViewCount DESC; il

3. SELEZIONA u.ufname COME ufname, u.ulname COME ulname, u.uid, u.ualias, u.uemail, u.upPhone, u.umobileno, u.location, DATE_FORMAT (STR_TO_DATE (u.GoLive, “%m/%d/%Y "), “%M %D ") COME diventa disponibile, DATE_FORMAT (STR_TO_DATE (u.GoLive, “%m/%d/%Y "), “%m/%d ") COME Go_Live_Format, dd.id COME department_id, dd.department_name, dd.department_email, od.teamleaduserid, tl.ufname COME teamlead_fname, tl.ulname COME teamlead_lname, anization_details_id, um.id COME users_master_id, um.user_role COME users_master_role, um.backup_user1, um.backup_user2, um.backup_user3, um.backup_user4, um.backup_user5, um.backup_area1, um.backup_area2, um.backup_area3, um.backup_area4, um.backup_area5 di um.org dai department_details dd, utenti tl, utenti u, organization_details od, users_master um DOVE anization_details_id = od.id E od.departmentid = dd.id E um.userid = u.uid E tl.uid = od.teamleaduserid E u.uid = $emp_id„; il

4. SELEZIONA u.ufname COME ufname, u.ulname COME ulname, u.ualias, u.uid, u.location, DATE_FORMAT (STR_TO_DATE (u.GoLive, “%m/%d/%Y "), “%m ") COME Birth_Month, DATE_FORMAT (STR_TO_DATE (u.GoLive, “%m/%d/%Y "), “%d ") COME Birth_Day A PARTIRE dagli utenti u IN CUI LIMITE 1 di $emp_id = di u.uid; il

5. SELEZIONA il uid, ufname, ulname, uemail, DATE_FORMAT (STR_TO_DATE (GoLive, “%m/%d/%Y "), “%b %d ") COME ptDob, DATE_ADD (giorno di INTERVALLO,) (di CURDATE 10), (DAYOFYEAR (DATE_ADD (CURDATE (), giorno di INTERVALLO 10))- DAYOFYEAR (STR_TO_DATE (diventare disponibile, “%m/%d/%Y "))) Dagli utenti DOVE delFlag='0 E UserType DENTRO (2) E (DAYOFYEAR (DATE_ADD (CURDATE (), giorno di INTERVALLO 10))- DAYOFYEAR (STR_TO_DATE (diventare disponibile, “%m/%d/%Y "))) FRA ORDINE 1 E 10 VICINO (DAYOFYEAR (DATE_ADD (CURDATE (), giorno di INTERVALLO 10))- DAYOFYEAR (STR_TO_DATE (diventare disponibile, “%m/%d/%Y "))) DESC

6. SELEZIONA u.uid COME EmployeeId, u.ufname COME FirstName, u.ulname COME LastName, u.upPhone COME DeskPhone, u.umobileno COME cellulare, u.uemail COME email, u.location COME posizione, munication_mode di ud.com COME CommunicationMode, ud.sparkid COME SparkId, ud.secondary_email COME SecondaryEmail, dd.department_name COME DepartmentName, um.user_role COME UserRole da users_master um, dd dei department_details, organization_details od, gli utenti u LASCIATI UNISCONO il ud dei users_details su ud.userid=u.uid DOVE u.delFlag='0 E u.UserType = ' 2 ' E u.status=0 E anization_details_id=od.id di um.org E di u.uid=um.userid ED ORDINE di dd.id=od.departmentid da u.ufname;

class= del

Risposta : Come ottimizzo queste domande di MySQL

Potete usare spiegate per ottenere il programma di esecuzione per la vostra domanda.
Usate il phpmyadmin, esso potrebbe essere utile nel richiamo della storia di condizione così come parecchi parametri dall'assistente del mysql e fornisce alcuni suggerimenti su come migliorare la prestazione registrando alcuni parametri?

Nelle domande 1 e 2 un unire ha potuto essere migliore.

i.e. selezionare u.ulname COME orglname, u.ufname come orgfname, od.id come detailsid… da. unire l'utente u su (u.uid=od.orgid)

Senza la definizione della Tabella I .e. che indici avete per ogni tabella, ecc. È duro analizzare una domanda per suggerire i miglioramenti.
i.e. se le vostre tabelle non hanno chiavi primarie né indici, aggiungenti i indicies accelererebbe il processo.

Using unixtime il bollo per i campi della data contro la stringa può anche accelerare le domande/che lo procedano cioè non dovrebbe convertire la stringa fin qui ed allora procedare/calcolare.
i 10 giorni sono di 864000 secondi. tali che aggiungere 864000 ad una colonna del unixdate ed allora convertire l'uscita in stringa nel codice del PHP durante l'esposizione saranno un migliore uso delle risorse rispetto a fare le vostre alterazioni dell'esposizione fare sul mio assistente di sql poichè ancora farete alcuno che proceda dal lato del PHP durante l'esposizione cioè che presenta i dati dalla domanda in una disposizione particolare rispetto appena a fare uscire fuori i risultati come testo normale.

Altre soluzioni  
 
programming4us programming4us