Frage : Wie ich diese MySQL Fragen optimiere

Ich verwende PHP u. MySQL in meiner Web-Anwendung:

1. Was ein freies Werkzeug sein, zum ich zu helfen, schlechtes queries

2. herauszufinden. Meine Hauptfrage: Sind hier die Fragen, die ich verwende und ich möchte können sie optimieren:

1. VORWÄHLEN od.id ALS orgdetailsid, od.departmentid, od.teamleaduserid,
(AUSERWÄHLTES u.ufname ALS orgfname VON Benutzern u WO u.uid=od.orgid) ALS orgfname,
(AUSERWÄHLTES u.ulname ALS orglname VON Benutzern u WO u.uid=od.orgid) ALS orglname,
u.ufname ALS teamleadfname, u.ulname ALS teamleadlname, u.uemail, dd.department_name
FROM organization_details Od, department_details DD, Benutzer u IN DENEN od.status='Y
AND dd.status='Y UND od.teamleaduserid=u.uid UND dd.id=od.departmentid AUFTRAG DURCH department_name nd;

2. VORWÄHLEN profile_of, (AUSERWÄHLTES department_name von den department_details WO id=profile_of) ALS Department_Name,
COUNT (*) ViewCount vom view_profile_count IN DEM STATUS='Y UND profile_type= " dept_profile "
GROUP DURCH Profile_of ORDER DURCH ViewCount DESC;

3. VORWÄHLEN u.ufname ALS ufname, u.ulname ALS 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 ") WIE auf den Markt kommen, DATE_FORMAT %D (STR_TO_DATE (u.GoLive, „%m/%d/%Y "), „%m/%d ") ALS Go_Live_Format, dd.id ALS department_id, dd.department_name, dd.department_email, od.teamleaduserid, tl.ufname ALS teamlead_fname, tl.ulname ALS teamlead_lname, um.org anization_details_id, um.id ALS users_master_id, um.user_role ALS 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 von den department_details DD, Benutzerzeitlimit, Benutzer u, organization_details Od, users_master um WO um.org anization_details_id = od.id UND od.departmentid = dd.id UND um.userid = u.uid UND tl.uid = od.teamleaduserid UND u.uid = $emp_id“;

4. VORWÄHLEN u.ufname ALS ufname, u.ulname ALS ulname, u.ualias, u.uid, u.location, DATE_FORMAT (STR_TO_DATE (u.GoLive, „%m/%d/%Y "), „%m ") ALS Birth_Month, DATE_FORMAT th (STR_TO_DATE (u.GoLive, „%m/%d/%Y "), „%d ") ALS Birth_Day VON Benutzern u IN DENEN u.uid = $emp_id BEGRENZUNG 1;

5. VORWÄHLEN uid, ufname, ulname, uemail, DATE_FORMAT (STR_TO_DATE (GoLive, „%m/%d/%Y "), „%b %d ") ALS ptDob, DATE_ADD ob (CURDATE (), des ABSTANDS 10 Tag), (DAYOFYEAR (DATE_ADD (CURDATE (), Tag des ABSTANDS 10))- DAYOFYEAR (STR_TO_DATE (, „%m/%d/%Y auf den Markt kommen "),)) Von den Benutzern, WO delFlag='0 UND UserType IN (2) UND (DAYOFYEAR (DATE_ADD (CURDATE (), Tag des ABSTANDS 10))- DAYOFYEAR (STR_TO_DATE (, „%m/%d/%Y auf den Markt kommen "),)) ZWISCHEN AUFTRAG 1 UND 10 VORBEI (DAYOFYEAR (DATE_ADD (CURDATE (), Tag des ABSTANDS 10))- DAYOFYEAR (STR_TO_DATE (, „%m/%d/%Y auf den Markt kommen "),)) DESC

6. VORWÄHLEN u.uid ALS EmployeeId, u.ufname ALS FirstName, u.ulname ALS LastName, u.upPhone ALS DeskPhone, u.umobileno ALS Mobiltelefon, u.uemail ALS eMail, u.location ALS Position, ud.com munication_mode ALS CommunicationMode, ud.sparkid ALS SparkId, ud.secondary_email ALS SecondaryEmail, dd.department_name ALS DepartmentName, um.user_role ALS UserRole vom users_master um, department_details DD, organization_details Od, die GELASSENEN Benutzer u users_details ud AUF ud.userid=u.uid IN DEM u.delFlag='0 UND u.UserType = ' 2 ' UND u.status=0 UND u.uid=um.userid UND um.org anization_details_id=od.id UND dd.id=od.departmentid AUFTRAG DURCH u.ufname ANSCHLIESSEN;

Antwort : Wie ich diese MySQL Fragen optimiere

Sie können verwenden erklären, um den Durchführungsplan für Ihre Frage zu erhalten.
Verwenden Sie phpmyadmin, es konnte nützlich sein, wenn, die Statusgeschichte sowie einige Parameter vom mysql Bediener zurückholend und zur Verfügung stellt einige Vorschläge auf, wie man Leistung indem die Justage einiger Parameter verbessert?

In Frage 1 und 2 konnte eine Verbindung besser sein.

i.e. u.ulname ALS orglname vorwählen, u.ufname als orgfname, od.id als detailsid… von. Benutzer u auf verbinden (u.uid=od.orgid)

Ohne die Definition der Tabelle I .e., welche Indizes Sie für jede Tabelle haben, etc. Es ist hart, eine Frage zu analysieren, um Verbesserungen vorzuschlagen.
i.e. wenn Ihre Tabellen keine Primärschlüssel noch Indizes haben, indicies addierend beschleunigen den Prozess.

Using unixtime kann der Stempel für die Datumfelder gegen die Schnur die Fragen/, die auch beschleunigen d.h. Sie verarbeiten, brauchen nicht, Schnur bis jetzt umzuwandeln und dann zu verarbeiten/berechnen.
10 Tage sind 864000 Sekunden. so, dass, 864000 einer unixdate Spalte hinzuzufügen und den Ausgang in Schnur im PHP-Code während der Anzeige dann umwandeln ein besserer Gebrauch von Betriebsmitteln verglichen mit Lassen Ihrer Anzeigenänderungen auf dem meinem sql-Bediener erfolgen sind, der angenommen ist, Sie noch einiges tun, das auf der PHP-Seite während der Anzeige die Daten von der Frage in einem bestimmten Format verglichen mit die Resultate gerade heraus entleeren als normaler Text d.h. ausbreitend verarbeitet.

Weitere Lösungen  
 
programming4us programming4us