witam
mam dwie tabele:
CREATE TABLE `proces` (
`proces_id` int(11) NOT NULL AUTO_INCREMENT,
`proces_pobor` varchar(20) NOT NULL DEFAULT '',
`proces_start` date NOT NULL DEFAULT '0000-00-00',
`proces_start_syst` date NOT NULL DEFAULT '0000-00-00',
`proces_war_data` date NOT NULL DEFAULT '0000-00-00',
`proces_war_data_syst` date NOT NULL DEFAULT '0000-00-00',
`proces_otworzyl` varchar(50) NOT NULL DEFAULT '',
`proces_zamknal` varchar(50) NOT NULL DEFAULT '',
`proces_stan` char(2) NOT NULL DEFAULT '',
`proces_z_obrotu` char(3) NOT NULL DEFAULT '',
`proces_kom_rejestrujaca` varchar(5) NOT NULL DEFAULT '',
`proces_dotyczy` varchar(150) NOT NULL DEFAULT '',
PRIMARY KEY (`proces_id`)
) ENGINE=MyISAM AUTO_INCREMENT=10097 DEFAULT CHARSET=latin2 AUTO_INCREMENT=10097 ;
oraz:
CREATE TABLE `wniosek` (
`wniosek_id` int(11) NOT NULL AUTO_INCREMENT,
`wniosek_proces` varchar(11) NOT NULL DEFAULT '',
`wniosek_nr` varchar(11) NOT NULL DEFAULT '',
`wniosek_nr_reczny` varchar(250) NOT NULL DEFAULT '',
`wniosek_nr_reczny_obr` text NOT NULL,
`wniosek_klient` text NOT NULL,
`wniosek_lokalizacja` text NOT NULL,
`wniosek_lokalizacja_miasto` text NOT NULL,
`wniosek_koresp` text NOT NULL,
`wniosek_koresp_miasto` text NOT NULL,
`wniosek_typ_wniosku` varchar(11) NOT NULL DEFAULT '',
`wniosek_rodzaj_wniosku` varchar(11) NOT NULL DEFAULT '',
`wniosek_dotyczy_wniosku` varchar(11) NOT NULL DEFAULT '',
`wniosek_dzial_rejestracji` varchar(50) NOT NULL DEFAULT '',
`wniosek_data` date NOT NULL DEFAULT '0000-00-00',
`wniosek_data_syst` date NOT NULL DEFAULT '0000-00-00',
`wniosek_zmienil` varchar(11) NOT NULL DEFAULT '',
`wniosek_data_zmienil` varchar(11) NOT NULL DEFAULT '',
`wniosek_aktywny` char(2) NOT NULL DEFAULT '',
`wniosek_notatka` text NOT NULL,
`wniosek_cele_grzewcze` varchar(5) NOT NULL DEFAULT '',
PRIMARY KEY (`wniosek_id`)
) ENGINE=MyISAM AUTO_INCREMENT=10097 DEFAULT CHARSET=latin2 AUTO_INCREMENT=10097 ;
wyciagam dane dotyczace np 10 procesow z tabeli proces, jednoczesnie odwolujac sie do wnioskow by sprawdzic stan procesu i miejsce rejestracji wniosku. robie to w ten sposob:
$pytanie="SELECT
proces_id as id,
proces_start as pstart,
proces_kom_rejestrujaca as komorka,
proces_start_syst as pstartsyst,
proces_war_data_syst as pstopsystem,
proces_pobor as pobor,
proces_war_data as pstop,
w.wniosek_klient as klient,
w.wniosek_lokalizacja as lokalizacja,
w.wniosek_lokalizacja_miasto as lokalizacja_miasto,
w.wniosek_nr as wniosek, w.wniosek_nr_reczny as wniosek_reczny,
proces_stan as stan
FROM proces p
left join wniosek w on w.wniosek_proces = p.proces_id where
p.proces_kom_rejestrujaca = '$UserDzial' and
proces_stan=1 order by id desc limit ".$strona*$na_stronie.", $na_stronie";
okrutnie dlugo musze czekac na odpowiedz, okolo 3-4 sekund baza potrzebuje na wykonanie tego zapytania. jak przyspieszyc to zapytanie?
obie tabele maja okolo 10k rekordow