Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL]Optymalizacja Indeksy
Forum PHP.pl > Forum > Przedszkole
Randallmaster
Tabela posiada 16 tys rekordów.

Mam zapytanie:
  1. SELECT `d`.`id` AS `id`, (SELECT count(*) FROM `document_packing` `d2` WHERE ((`d2`.`ip` LIKE concat(`d`.`ip`,'.%')) AND (`d2`.`act` = 'Y'))) AS `under` FROM ((`document_packing` `d` )) LIMIT 1000


Zapytanie wykonuje się 5 sec... Co mogę zrobić aby to zoptymalizować?
Jakie indeksy muszę dodać?
Pyton_000
A coś w ten deseń?
  1. SELECT
  2. `d`.`id`,
  3. COUNT(1)
  4. FROM
  5. `document_packing` `d`
  6. LEFT JOIN `document_packing` `d2` ON (`d2`.`act` = 'Y' AND `d2`.`ip` LIKE CONCAT(`d`.`ip`, '.%'))
  7. GROUP BY `d`.`id`;


I ew. pokaż EXPLAIN ze swojego zapytania.
Randallmaster
Ciągle to samo sad.gif

id:1
select_type:SIMPLE
table: document_packing
type:ALL
possible_keys:NULL
key:NULL
key_len:NULL
ref:NULL
rows:16188
Extra:NULL




Pyton_000
Pokaż dump ze struktury tabeli
Randallmaster
CREATE TABLE IF NOT EXISTS `document_packing` (
`id` int(11) NOT NULL,
`ip` varchar(65) NOT NULL,
`parent_id` int(11) NOT NULL DEFAULT '0',
`depth` int(11) NOT NULL DEFAULT '1',
`quantity` decimal(10,4) NOT NULL,
`quantity_packing` decimal(10,4) NOT NULL DEFAULT '0.0000',
`act` char(1) NOT NULL DEFAULT 'Y'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

ALTER TABLE `document_packing`
ADD PRIMARY KEY (`id`,`ip`),
ADD UNIQUE KEY `id` (`id`,`ip`) USING BTREE,
ADD KEY `ip` (`ip`),
ADD KEY `test2` (`ip`,`act`),
ADD KEY `id_2` (`id`,`ip`);

Udało mi się w połowie rozwiązać problem. Zapytanie to posiadam w widoku i jeżeli go uruchomię to ładuje się ok 88 sec. Natomiast jeżeli zapytanie skopiuję z widoku i puszczę go bez widoku działa 0,1187, co może być tego przyczyną?
Pyton_000
Olej widoki, MySQL strasznie sobie z nimi radzi.
Randallmaster
aplikacja działa na widokach sad.gif a ja poprawiam dane sad.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.