Pergunta : Como eu aperfeiçôo estas perguntas de MySQL

Eu uso o PHP & o MySQL em minha aplicação web:

1. O que seria uma ferramenta livre para me ajudar a encontrar o queries

2. Minha pergunta principal: Estão aqui as perguntas que eu me uso e eu quero saber aperfeiçoá-los: o

1. SELECIONA od.id COMO o orgdetailsid, o od.departmentid, o od.teamleaduserid, o
(u.ufname SELETO COMO o orgfname dos usuários u ONDE u.uid=od.orgid) COMO o orgfname, o
(u.ulname SELETO COMO o orglname dos usuários u ONDE u.uid=od.orgid) COMO o orglname, o
u.ufname COMO o teamleadfname, o u.ulname COMO o teamleadlname, o u.uemail, os organization_details od do
FROM de dd.department_name, os department_details dd, os usuários u ONDE o
AND dd.status='Y de od.status='Y E A ORDEM de od.teamleaduserid=u.uid E de dd.id=od.departmentid pelo department_name; o

2. SELECIONA o profile_of, (department_name SELETO dos department_details ONDE id=profile_of) COMO Department_Name,
COUNT (*) ViewCount do view_profile_count ONDE STATUS='Y E do "
GROUP dept_profile " do profile_type= por profile_of ORDEM por ViewCount DESC; o

3. SELECIONA u.ufname COMO o ufname, u.ulname COMO o 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 GoLive, DATE_FORMAT (STR_TO_DATE (u.GoLive, “%m/%d/%Y "), “%m/%d ") COMO Go_Live_Format, dd.id COMO o department_id, dd.department_name, dd.department_email, od.teamleaduserid, tl.ufname COMO o teamlead_fname, tl.ulname COMO o teamlead_lname, anization_details_id de um.org, um.id COMO o users_master_id, um.user_role COMO o 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 dos department_details dd, usuários tl, usuários u, organization_details od, users_master um ONDE 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”; o

4. SELECIONA u.ufname COMO o ufname, u.ulname COMO o 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 dos usuários u ONDE O LIMITE 1 de u.uid = de $emp_id; o

5. SELECIONA o uid, ufname, ulname, uemail, DATE_FORMAT (STR_TO_DATE (GoLive, “%m/%d/%Y "), “%b %d ") COMO o ptDob, DATE_ADD (dia de CURDATE (), de INTERVALO 10), (DAYOFYEAR (DATE_ADD (CURDATE (), o dia do INTERVALO 10))- DAYOFYEAR (STR_TO_DATE (GoLive, “%m/%d/%Y "))) Dos usuários ONDE delFlag='0 E UserType em (2) E (DAYOFYEAR (DATE_ADD (CURDATE (), dia do INTERVALO 10))- DAYOFYEAR (STR_TO_DATE (GoLive, “%m/%d/%Y "))) ENTRE A ORDEM 1 E 10 PERTO (DAYOFYEAR (DATE_ADD (CURDATE (), dia do INTERVALO 10))- DAYOFYEAR (STR_TO_DATE (GoLive, “%m/%d/%Y "))) DESC

6. SELECIONA u.uid COMO EmployeeId, u.ufname COMO FirstName, u.ulname COMO LastName, u.upPhone COMO DeskPhone, u.umobileno COMO o telemóvel, u.uemail COMO o email, u.location COMO a posição, 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 do users_master um, dd dos department_details, organization_details od, os usuários u DEIXADOS SE JUNTAM ao ud dos users_details em ud.userid=u.uid ONDE u.delFlag='0 E u.UserType = ' 2 ' E u.status=0 E anization_details_id=od.id de u.uid=um.userid E de um.org E ORDEM de dd.id=od.departmentid por u.ufname;

class= do

Resposta : Como eu aperfeiçôo estas perguntas de MySQL

Você pode usar-se explica para começ a planta da execução para sua pergunta.
Você usa o phpmyadmin, ele pôde ser útil em recuperar a história do status assim como diversos parâmetros do usuário do mysql e fornece algumas sugestões em como melhorar o desempenho ajustando alguns parâmetros?

Na pergunta 1 e 2 uma junta pôde ser melhor.

i.e. selecionar u.ulname COMO o orglname, u.ufname como o orgfname, od.id como o detailsid… de. juntar-se ao usuário u em (u.uid=od.orgid)

Sem a definição da tabela isto é que índices você tem para cada tabela, etc. É duro analisar uma pergunta para sugerir melhorias.
i.e. se suas tabelas não têm nenhum chave preliminar nem índice, adicionando indicies aceleraria o processo.

Using o unixtime o selo para os campos da data contra a corda pode igualmente acelerar as perguntas/que processam isto é o não precisaria de converter até agora a corda e para processar então/calcular.
10 dias são 864000 segundos. tais que adicionar 864000 a uma coluna do unixdate e então converter a saída à corda no código do PHP durante a exposição serão um uso melhor dos recursos em comparação a ter suas alterações da exposição feitas em meu usuário do sql dado que você ainda estará fazendo algum que processa no lado do PHP durante a exposição isto é que apresenta os dados da pergunta em um formato particular em comparação apenas a despejar para fora os resultados como o texto liso.

Outras soluções  
 
programming4us programming4us