Cuestión : Cómo optimizo estas preguntas de MySQL

Utilizo el PHP y MySQL en mi aplicación web:

1. Cuál sería una herramienta libre para ayudarme a descubrir el mán queries

2. Mi pregunta principal: Aquí están las preguntas que utilizo y quiero saber optimizarlos: el

1. SELECCIONA od.id COMO orgdetailsid, od.departmentid, od.teamleaduserid, el
(u.ufname SELECTO COMO orgfname de los usuarios u DONDE u.uid=od.orgid) COMO orgfname, el
(u.ulname SELECTO COMO orglname de los usuarios u DONDE u.uid=od.orgid) COMO orglname, el
u.ufname COMO teamleadfname, u.ulname COMO teamleadlname, u.uemail, los organization_details od del
FROM de dd.department_name, los department_details DD, los usuarios u DONDE el
AND dd.status='Y de od.status='Y Y ORDEN de od.teamleaduserid=u.uid Y de dd.id=od.departmentid POR el department_name; el

2. SELECCIONA el profile_of, (department_name SELECTO de los department_details DONDE id=profile_of) COMO Department_Name,
COUNT (*) ViewCount del view_profile_count DONDE STATUS='Y Y el
GROUP del " dept_profile " del profile_type= de profile_of ORDER de ViewCount DESC; el

3. SELECCIONA u.ufname COMO ufname, u.ulname COMO 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 ") COMO resulta útil, DATE_FORMAT (STR_TO_DATE (u.GoLive, “%m/%d/%Y "), “%m/%d ") COMO Go_Live_Format, dd.id COMO department_id, dd.department_name, dd.department_email, od.teamleaduserid, tl.ufname COMO teamlead_fname, tl.ulname COMO teamlead_lname, anization_details_id, um.id COMO users_master_id, um.user_role COMO 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 de um.org de los department_details DD, usuarios tl, usuarios u, organization_details od, users_master um DONDE anization_details_id = od.id Y od.departmentid = dd.id Y um.userid = u.uid Y tl.uid = od.teamleaduserid Y u.uid = $emp_id”; el

4. SELECCIONA u.ufname COMO ufname, u.ulname COMO ulname, u.ualias, u.uid, u.location, DATE_FORMAT (STR_TO_DATE (u.GoLive, “%m/%d/%Y "), “%m ") COMO Birth_Month, DATE_FORMAT (STR_TO_DATE (u.GoLive, “%m/%d/%Y "), “%d ") COMO Birth_Day de los usuarios u DONDE EL LÍMITE 1 de u.uid = de $emp_id; el

5. SELECCIONA el uid, ufname, ulname, uemail, DATE_FORMAT (STR_TO_DATE (GoLive, “%m/%d/%Y "), “%b %d ") COMO ptDob, DATE_ADD día (de CURDATE (), del INTERVALO 10), (DAYOFYEAR (DATE_ADD (CURDATE (), el día del INTERVALO 10))- DAYOFYEAR (STR_TO_DATE (resultar útil, “%m/%d/%Y "))) De los usuarios DONDE delFlag='0 Y UserType EN (2) Y (DAYOFYEAR (DATE_ADD (CURDATE (), día del INTERVALO 10))- DAYOFYEAR (STR_TO_DATE (resultar útil, “%m/%d/%Y "))) ENTRE LA ORDEN 1 Y 10 CERCA (DAYOFYEAR (DATE_ADD (CURDATE (), día del INTERVALO 10))- DAYOFYEAR (STR_TO_DATE (resultar útil, “%m/%d/%Y "))) DESC

6. SELECCIONA u.uid COMO EmployeeId, u.ufname COMO FirstName, u.ulname COMO LastName, u.upPhone COMO DeskPhone, u.umobileno COMO móvil, u.uemail COMO email, u.location COMO localización, munication_mode de ud.com COMO CommunicationMode, ud.sparkid COMO SparkId, ud.secondary_email COMO SecondaryEmail, dd.department_name COMO DepartmentName, um.user_role COMO UserRole del users_master um, DD de los department_details, organization_details od, los usuarios u DEJADOS ENSAMBLAN el ud de los users_details EN ud.userid=u.uid DONDE u.delFlag='0 Y u.UserType = ' 2 ' Y u.status=0 Y el anization_details_id=od.id de u.uid=um.userid Y de um.org Y ORDEN de dd.id=od.departmentid POR u.ufname;

class= del

Respuesta : Cómo optimizo estas preguntas de MySQL

Usted puede utilizar explica para conseguir el plan de la ejecución para su pregunta.
¿Usted utiliza phpmyadmin, él pudo ser provechoso en el recuperación de la historia del estado así como varios parámetros del servidor del mysql y proporciona algunas sugerencias en cómo mejorar funcionamiento ajustando algunos parámetros?

En la pregunta 1 y 2 un ensamblar pudo ser mejor.

i.e. seleccionar u.ulname COMO orglname, u.ufname como orgfname, od.id como detailsid… de. ensamblar a usuario u en (u.uid=od.orgid)

Sin la definición de la Tabla I .e. qué índices usted tiene para cada tabla, etc. Es duro analizar una pregunta para sugerir mejoras.
i.e. si sus tablas no tienen ningunas llaves primarias ni índice, agregando indicies aceleraría el proceso.

Usar unixtime la estampilla para los campos de la fecha contra la secuencia puede también acelerar las preguntas/que le procesan es decir no necesitaría convertir la secuencia hasta la fecha y entonces procesar/calcular.
10 días son 864000 segundos. tales que el adición de 864000 a una columna del unixdate y después convertir la salida a la secuencia en el código del PHP durante la exhibición serán un mejor uso de recursos con respecto a hacer sus alteraciones de la exhibición hacer en el mi servidor del sql dado que usted todavía hará alguno que procesa en el lado del PHP durante la exhibición es decir que presenta los datos de la pregunta en un formato particular con respecto apenas a descargar hacia fuera los resultados como texto llano.

Otras soluciones  
 
programming4us programming4us