Question : Comment j'optimise ces questions de MySQL

J'emploie le PHP et le MySQL dans mon application Web :

1. Ce qui serait un outil libre pour m'aider à découvrir le mauvais queries

2. Ma question principale : Voici utiliser-et des questions I que je veux savoir les optimiser : le

1. CHOISISSENT od.id COMME orgdetailsid, od.departmentid, od.teamleaduserid,
(u.ufname CHOISI COMME orgfname des utilisateurs u OÙ u.uid=od.orgid) COMME orgfname,
(u.ulname CHOISI COMME orglname des utilisateurs u OÙ u.uid=od.orgid) COMME orglname,
u.ufname COMME teamleadfname, u.ulname COMME teamleadlname, u.uemail, organization_details OD du
FROM de dd.department_name, department_details densité double, utilisateurs u OÙ le
AND dd.status='Y d'od.status='Y ET ORDRE d'od.teamleaduserid=u.uid ET de dd.id=od.departmentid PAR le department_name ; le

2. CHOISISSENT le profile_of, (department_name CHOISI des department_details OÙ id=profile_of) COMME Department_Name, le
COUNT (*) ViewCount À PARTIR du view_profile_count OÙ STATUS='Y ET
GROUP du " dept_profile " de profile_type= PAR profile_of ORDER PAR ViewCount DESC ; le

3. CHOISISSENT u.ufname COMME ufname, u.ulname COMME 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 ") COMME deviennent disponibles, DATE_FORMAT (STR_TO_DATE (u.GoLive, « %m/%d/%Y "), « %m/%d ") COMME Go_Live_Format, dd.id COMME department_id, dd.department_name, dd.department_email, od.teamleaduserid, tl.ufname COMME teamlead_fname, tl.ulname COMME teamlead_lname, l'anization_details_id, um.id COMME users_master_id, um.user_role COMME 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, l'um.backup_area5 d'um.org des department_details densité double, les utilisateurs tl, utilisateurs u, organization_details OD, UM d'users_master OÙ anization_details_id = od.id ET od.departmentid = dd.id ET um.userid = u.uid ET tl.uid = od.teamleaduserid ET u.uid = $emp_id » ; le

4. CHOISISSENT u.ufname COMME ufname, u.ulname COMME ulname, u.ualias, u.uid, u.location, DATE_FORMAT (STR_TO_DATE (u.GoLive, « %m/%d/%Y "), « %m ") COMME Birth_Month, DATE_FORMAT (STR_TO_DATE (u.GoLive, « %m/%d/%Y "), « %d ") COMME Birth_Day À PARTIR des utilisateurs u OÙ LA LIMITE 1 d'u.uid = de $emp_id ; le

5. CHOISISSENT l'uid, ufname, ulname, l'uemail, DATE_FORMAT (STR_TO_DATE (GoLive, « %m/%d/%Y "), « %b %d ") COMME ptDob, DATE_ADD jour (de CURDATE (), d'INTERVALLE 10), (DAYOFYEAR (DATE_ADD (CURDATE (), le jour d'INTERVALLE 10))- DAYOFYEAR (STR_TO_DATE (devenir disponible, « %m/%d/%Y "))) Des utilisateurs OÙ delFlag='0 ET UserType EN (2) ET (DAYOFYEAR (DATE_ADD (CURDATE (), jour d'INTERVALLE 10))- DAYOFYEAR (STR_TO_DATE (devenir disponible, « %m/%d/%Y "))) ENTRE L'ORDRE 1 ET 10 PRÈS (DAYOFYEAR (DATE_ADD (CURDATE (), jour d'INTERVALLE 10))- DAYOFYEAR (STR_TO_DATE (devenir disponible, « %m/%d/%Y "))) DESC

6. CHOISISSENT u.uid COMME EmployeeId, u.ufname COMME FirstName, u.ulname COMME LastName, u.upPhone COMME DeskPhone, u.umobileno COMME portable, u.uemail COMME email, u.location COMME endroit, munication_mode d'ud.com COMME CommunicationMode, ud.sparkid COMME SparkId, ud.secondary_email COMME SecondaryEmail, dd.department_name COMME DepartmentName, um.user_role COMME UserRole de l'UM d'users_master, densité double de department_details, les organization_details OD, les utilisateurs u LAISSÉS JOIGNENT l'ud d'users_details SUR ud.userid=u.uid OÙ u.delFlag='0 ET u.UserType = ' 2 ' ET u.status=0 ET anization_details_id=od.id d'u.uid=um.userid ET d'um.org ET ORDRE de dd.id=od.departmentid PAR u.ufname ;

class= de

Réponse : Comment j'optimise ces questions de MySQL

Vous pouvez employer expliquez pour obtenir le plan d'exécution pour votre question.
Employez-vous le phpmyadmin, il pourrait être utile en recherchant l'histoire de statut aussi bien que plusieurs paramètres du serveur de mysql et fournit quelques suggestions sur la façon dont améliorer l'exécution en ajustant quelques paramètres ?

Dans la question 1 et 2 une jointure pourrait être meilleure.

i.e. choisir u.ulname COMME orglname, u.ufname comme orgfname, od.id comme detailsid… de. joindre l'utilisateur u sur (u.uid=od.orgid)

Sans définition du Tableau I .e. quels index vous prenez pour chaque table, etc. Il est difficile d'analyser une question pour suggérer des améliorations.
i.e. si vos tables n'ont aucune clé primaire ni index, ajoutant des indicies accélérerait le processus.

Using l'unixtime le timbre pour les champs de date contre la corde peut également accélérer des questions/vous traitant c.-à-d. n'aurait pas besoin de convertir la corde jusqu'ici et traiter alors/calculer.
10 jours sont de 864000 secondes. tels qu'additionner 864000 à une colonne d'unixdate et puis la conversion du rendement en corde dans le code de PHP pendant l'affichage seront une meilleure utilisation des ressources par rapport à faire faire vos changements d'affichage sur le mon serveur de SQL étant donné que vous en ferez toujours traitant du côté de PHP pendant l'affichage c.-à-d. présentant les données de la question dans un format particulier par rapport à vider juste dehors les résultats en tant que texte plat.

Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us