Consulta A Tabela Muito Lenta, Através De Combobox
#1
Posted 09/10/2007, 09:07
Tenho um banco de dados de cadastro; no ato do cadastro a consulta feita em 5 tabeles diferentes a partir de combobox, esta tabela estão ligadas através de chave primaria e chave estrangeira, o problema é que a pagina se tornou tão lenta a ponto de não carregar, eu gostaria de saber se tem alguma forma de consertar isto, alguem pode me dar um apoio..
> tipo de tabela utilizada : Inoodb
- > Index_type em todos campos -> BIREE
Não tem indices setados no campos utilizados pela clausula where.
Segue a forma que fiz a tabela:
[codebox]create table cadastro (
idCadastro int(11) not null auto_increment,
sentido char(32),
data date,
pracaPedagio char(32),
tipodeVeiculo char(32),
arrecadador char(30),
horario time,
Origem INT NOT NULL,
Destino INT NOT NULL,
produtos INT NOT NULL,
transportadora INT NOT NULL,
MotivoViajem char(40) null,
eixo char(32) null,
frequenciaUtilizacao char(32) null,
avaliacaoVianorte char(32) null,
postoUtilizado INT NOT NULL,
tempodeViajem char(32) null,
primary key (idCadastro, Origem, Destino, produtos, transportadora, postoUtilizado),
FOREIGN KEY (Origem) REFERENCES cidade (idcidades) ON DELETE NO ACTION ON UPDATE NO ACTION,
FOREIGN KEY (Destino) REFERENCES cidade (idcidades) ON DELETE NO ACTION ON UPDATE NO ACTION,
FOREIGN KEY (produtos) REFERENCES produtos (idProdutos) ON DELETE NO ACTION ON UPDATE NO ACTION,
FOREIGN KEY (postoUtilizado) REFERENCES postoservico (idPosto) ON DELETE NO ACTION ON UPDATE NO ACTION ,
FOREIGN KEY (transportadora) REFERENCES transportadora (idTransportadora) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB;[/codebox]
maneira que é feita 1 dos 5 select:
[codebox]$sql = "SELECT * FROM produtos order by nomeProduto";[/codebox]
-> tipo de tabela utilizada : Inoodb
- > Index_type em todos campos -> BIREE
Não tem indices setados no campos utilizados pela clausula where.
Segue a forma que fiz a tabela:
CODE
create table cadastro (
idCadastro int(11) not null auto_increment,
sentido char(32),
data date,
pracaPedagio char(32),
tipodeVeiculo char(32),
arrecadador char(30),
horario time,
Origem INT NOT NULL,
Destino INT NOT NULL,
produtos INT NOT NULL,
transportadora INT NOT NULL,
MotivoViajem char(40) null,
eixo char(32) null,
frequenciaUtilizacao char(32) null,
avaliacaoVianorte char(32) null,
postoUtilizado INT NOT NULL,
tempodeViajem char(32) null,
primary key (idCadastro, Origem, Destino, produtos, transportadora, postoUtilizado),
FOREIGN KEY (Origem) REFERENCES cidade (idcidades) ON DELETE NO ACTION ON UPDATE NO ACTION,
FOREIGN KEY (Destino) REFERENCES cidade (idcidades) ON DELETE NO ACTION ON UPDATE NO ACTION,
FOREIGN KEY (produtos) REFERENCES produtos (idProdutos) ON DELETE NO ACTION ON UPDATE NO ACTION,
FOREIGN KEY (postoUtilizado) REFERENCES postoservico (idPosto) ON DELETE NO ACTION ON UPDATE NO ACTION ,
FOREIGN KEY (transportadora) REFERENCES transportadora (idTransportadora) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB;
maneira que é feita o select:
CODE
$sql = "SELECT * FROM produtos order by nomeProduto";
São 5 combobox com select em tabelas . está muito lento a pagina não chega nem a abrir
a a necessidade de criar index ? se houver como sera feito ?
muito obrigado pela atenção:
#2
Posted 09/10/2007, 09:22
São cinco selects para cada combo ou é um select para cada um dos conco combos?
[] Rafael
#3
Posted 09/10/2007, 09:32
CREATE INDEX nome_produto ON produtos (nomeProduto(1));
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29
#4
Posted 09/10/2007, 09:34
na produtos cerca de 500 registro,
nas outras cerca de 100 produtos , a consulta ficou tão lenta que a pagina de cadastro nem abre,
oque eu andei lendo foi sobre index e sobre indices, para fazer a consulta ficar mais rapida, mas não sei como fazer.
ahh é um select para cada combo referente a tabela especifica.
Edição feita por: Junior Simões, 09/10/2007, 09:35.
#5
Posted 09/10/2007, 10:01
O SQL se vira bem!
Eu fiz um teste na minha base (é Postgres, não MySQL... mas não quer dizer)... trouxe mais de 8 mil registros em menos de meio segundo.
O problema é que o seu usuário não precisa de cinco mil cidades sendo que ele só vai usar uma. Concorda?
[] Rafael
#6
Posted 09/10/2007, 11:19
[codebox]create table cadastro (
idCadastro int(11) not null auto_increment,
sentido char(32),
data date,
pracaPedagio char(32),
tipodeVeiculo char(32),
arrecadador char(30),
horario time,
Origem INT NOT NULL,
Destino INT NOT NULL,
produtos INT NOT NULL,
transportadora INT NOT NULL,
MotivoViajem char(40) null,
eixo char(32) null,
frequenciaUtilizacao char(32) null,
avaliacaoVianorte char(32) null,
postoUtilizado INT NOT NULL,
tempodeViajem char(32) null,
primary key (idCadastro, Origem, Destino, produtos, transportadora, postoUtilizado),
FOREIGN KEY (Origem) REFERENCES cidade (idcidades) ON DELETE NO ACTION ON UPDATE NO ACTION,
FOREIGN KEY (Destino) REFERENCES cidade (idcidades) ON DELETE NO ACTION ON UPDATE NO ACTION,
FOREIGN KEY (produtos) REFERENCES produtos (idProdutos) ON DELETE NO ACTION ON UPDATE NO ACTION,
FOREIGN KEY (postoUtilizado) REFERENCES postoservico (idPosto) ON DELETE NO ACTION ON UPDATE NO ACTION ,
FOREIGN KEY (transportadora) REFERENCES transportadora (idTransportadora) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB;[/codebox]
Edição feita por: Junior Simões, 09/10/2007, 11:23.
#7
Posted 18/10/2007, 11:13
Amigo eu não consigo criar os indices da um apoio ai para criação no ato da criação desta tabela
create table cadastro (idCadastro int(11) not null auto_increment,sentido char(32),data date,pracaPedagio char(32),tipodeVeiculo char(32),arrecadador char(30),horario time,Origem INT NOT NULL,Destino INT NOT NULL,produtos INT NOT NULL,transportadora INT NOT NULL,MotivoViajem char(40) null,eixo char(32) null,frequenciaUtilizacao char(32) null,avaliacaoVianorte char(32) null,postoUtilizado INT NOT NULL,tempodeViajem char(32) null,primary key (idCadastro, Origem, Destino, produtos, transportadora, postoUtilizado),FOREIGN KEY (Origem) REFERENCES cidade (idcidades) ON DELETE NO ACTION ON UPDATE NO ACTION,FOREIGN KEY (Destino) REFERENCES cidade (idcidades) ON DELETE NO ACTION ON UPDATE NO ACTION,FOREIGN KEY (produtos) REFERENCES produtos (idProdutos) ON DELETE NO ACTION ON UPDATE NO ACTION,FOREIGN KEY (postoUtilizado) REFERENCES postoservico (idPosto) ON DELETE NO ACTION ON UPDATE NO ACTION ,FOREIGN KEY (transportadora) REFERENCES transportadora (idTransportadora) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB;
consegui vlw..
index( nome dos campos ) ;
#8
Posted 22/09/2017, 10:41
Zithromax Suspension Dosing Change Dose Propecia Lasix Buy No Prescription
Prix Levitra 10 Mg <a href=http://cialtobuy.com>cheap cialis</a> Buy Spironolactone
Acheter Du Kamagra Quebec cialis online Viagra Kaufen Bei Ebay
Achat Lioresal Keflex Talwin And Clotrimazole
Ere To Get Cialis In Perth <a href=http://cialtobuy.com>buy cialis</a> sale isotretinoin roacutan website cheapeast
Bayer cialis online Cialis Samples Overnight
Cheap Doxycycline Uk Prednisone From Mexico
Propecia Works Men <a href=http://cialtobuy.com>cialis online</a> Cialis Free Samples
#9
Posted 08/10/2017, 00:04
Kamagra Gold Review cheap cialis Viagra Prezzi In Farmacia Nolvadex Men Achat De Kamagra
Prix Du Viagra 25mg Order Fluoxetine Online No Prescription Rualis 20 levitra 40 mg best price Keflex Cures Giardia Can You Buy Atarax Over The Counter Discount Nonprescription Tadalis Sx
#10
Posted 26/10/2017, 00:19
Lasix Drug Test viagra Low Price Viagra Pills For Sale Propecia Reproduccion buy accutane v-drugstore
#11
Posted 05/11/2017, 22:09
Cephalexin Chlamydia Propecia Barato 1 Mg Disfunzione Erettile viagra Keflex For Herpes Cytotec Vente Buy Generic Tadalafil Online
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)