Desktop
Website
Multimedia
Database
Security
Enterprise
Fråga : Hur jag optimerar dessa MySQL Queries
Jag använder PHP & MySQL i min rengöringsdukapplikation:
1. Vad skulle, är ett fritt bearbetar för att hjälpa mig att finna ut bjöd queries
2. Mitt huvudsakligt ifrågasätter: Är här queriesna som jag använder, och jag önskar att veta hur man optimerar dem:
1. VALD od.id SOM orgdetailsid, od.department
id, od.team
leaduserid
,
(VALD u.ufname SOM orgfname FRÅN användare u VAR u.uid=od.orgid) SOM orgfname,
(VALD u.ulname SOM orglname FRÅN användare u VAR u.uid=od.orgid) SOM orglname,
u.ufname SOM teamleadfname, u.ulname SOM teamleadlname, u.uemail, organization_details od, department_details dd, användare u för
FROM för dd.
department
_name VAR od.status='Y'-
AND dd.status='Y OCH od.teamleaduserid=u.uid OCH dd.id=od.departmentid BESTÄLLER VID department_name;
2. VALD profile_of, (VALD department_name FRÅN department_details VAR id=profile_of) SOM Department_Name,
COUNT (*) ViewCount FRÅN view_profile_count VAR STATUS='Y OCH
GROUP för profile_type=" dept_profile
" AV profile_of BESTÄLLA AV ViewCount DESC;
3. VALD u.ufname SOM ufname, u.ulname SOM 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”) SOM GoLive, DATE_FORMAT (STR_TO_DATE (u.GoLive, ”%m/%d/%Y”), ”%m/%d”) SOM Go_Live_Format, dd.id SOM department_id, dd.department_name, dd.department_email, od.teamleaduserid, tl.ufname SOM teamlead_fname, tl.ulname SOM teamlead_lname, um.org anization_details_id
, um.id SOM users_master_id, um.user_role SOM 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.b
ackup_area
3, um.backu
p_area4, um
.backup_ar
ea5 FRÅN department_details dd, användare tl, användare u, organization_details od, users_master um VAR um.org anization_details_id
= od.id OCH od.departmentid = dd.id OCH um.userid = u.uid OCH tl.uid = od.teamleaduserid OCH u.uid = $emp_id”;
4. VÄLJ u.ufname SOM ufname, u.ulname SOM ulname, u.ualias, u.uid, u.location, DATE_FORMAT (STR_TO_DATE (u.GoLive, ”%m/%d/%Y”), ”%m”) SOM Birth_Month, DATE_FORMAT (STR_TO_DATE (u.GoLive, ”%m/%d/%Y”), ”%d”) SOM Birth_Day FRÅN användare u VAR u.uid = $emp_id BEGRÄNSAR 1;
5. VÄLJ uid, ufname, ulname, uemail, DATE_FORMAT (STR_TO_DATE (Go
Live, ”%m/%d/%Y”), ”%b %d”) SOM ptDob, DATE_ADD dagen (för CURDATE (), för MELLANRUM 10), (DAYOFYEAR (DATE_ADD (CURDAT
E (), dagen för MELLANRUM 10))- DAYOFYEAR (STR_TO_DAT
E (GoLive, ”%m/%d/%Y”),)) FRÅN användare VAR delFlag='0 OCH UserType IN (2) OCH (DAYOFYEAR (DATE_ADD (CURDAT
E (), dagen för MELLANRUM 10))- DAYOFYEAR (STR_TO_DAT
E (GoLive, ”%m/%d/%Y”),)) MELLAN 1 OCH 10 BESTÄLLA BY (DAYOFYEAR (DATE_ADD (CURDAT
E (), dagen för MELLANRUM 10))- DAYOFYEAR (STR_TO_DAT
E (GoLive, ”%m/%d/%Y”),)) DESC
6. VALDA u.uid SOM EmployeeId, u.ufname SOM FirstName, u.ulname SOM LastName, u.upPhone SOM DeskPhone, u.umobileno SOM mobilePhonen, u.uemail SOM e-posten, u.location SOM läge, ud.com munication_mode SOM CommunicationMode, ud.sparkid SOM SparkId, ud.secondary_email SOM SecondaryEmail, dd.department_name SOM DepartmentName, um.user_role SOM UserRole FRÅN users_master um, department_detailsdd, organization_details od, LÄMNADE användare u SAMMANFOGAR users_detailsud PÅ ud.userid=u.uid VAR u.delFlag='0 OCH u.UserType = ' 2 ' OCH u.status=0- OCH u.uid=um.userid- OCH um.org anization_details_id
=od.id OCH dd.id=od.departmentid BESTÄLLER VID u.ufname;
" klar "
Svar : Hur jag optimerar dessa MySQL Queries
Du kan använda förklarar för att få utförandet planerar för din query.
Du använder phpmyadminen, det styrkan för att vara hjälpsam, i hämtande av statushistorien as well as flera parametrar från mysqlserveren och ger några förslag på hur man förbättrar kapacitet, genom att justera några parametrar?
I query 1 och 2 som en sammanfoga kan, var bättre.
i.e. välj u.ulname SOM orglname, u.ufname som orgfname, od.id som detailsid… från. sammanfoga användare u på (u.uid=od.orgid)
Utan definitionen av bordlägga vilka index du har för varje, bordlägga dvs., Etc. som det är hårt att analysera en query för att föreslå förbättringar.
i.e. om ditt bordlägger har inget primärt stämm nor, index som tillfogar skulle indicies, rusar upp det processaa.
Using unixtime stämpeln för datera sätter in kontra stränga kan också rusa upp queries/som bearbetar dig dvs., skulle inte behov att konvertera stränger hitintills, och därefter processaa/beräkna.
10 dagar är 864000 understöder. sådan, att tillfoga 864000 till en unixdatekolonn och konvertera därefter som tillverkas för att stränga i phpen kodifiera under skärmen, ska är ett bättre bruk av resurser, som jämfört till att ha dina skärmförändringar att göras på den min givna sql-serveren, att du ska fortfarande, gör något som bearbetar på php-sidan under skärmen som dvs. ut lägger datan från queryen i en detalj formaterar som jämfört till precis att dumpa ut resultaten som totalt text.
Andra lösningar
Hur många skrivar av sidor r där i SQL-server?
OMA och OWA
Missa över mellan GLÅMIGA anslutningar för aktiv/för aktiv på en Cisco Router
ASP.Net tappar skuggar verkställer
Vad är ämna av ”den MAKEFILE” makroen i en makefile?
Ett rengöringsdukundantag uppstod därför att en HTTP 401 - det obehöriga svaret mottogs från okända
Funktionen måste använda en Updateable Query
PHP passerar parametrar till den on-line aktiveringssidan
Ethernetövergångskabel förbinder
döda ett processaa vid styrka, hur kan jag