MySQL-3.23.21-beta a BerkeleyDB tables

Honza Pazdziora adelton na informatics.muni.cz
Pátek Červenec 14 12:17:43 CEST 2000


On Fri, Jul 14, 2000 at 12:00:12PM +0200, Karel Zak wrote:
> 
>  Todle muze byto dobre slozite, protoze na tu funkci muze byt jeste navazan
> vypocet a pak se muze zmenit i dost podstatna cast odpovedi.

Jiste. Ale pokud mam funkce typu sqrt(4), tak uz na nicem dalsim
nezavisi, a to ani pokud ji pouziji ve vyrazu sqrt(sloupec). Mel jsem
snahu delat to konzervativne a prohlasit funkce za zlo, a pak jednotlive
(sqrt, int) oznacit jako entity, jejichz pritomnost v selectu
nepotlaci moznost jeho cachovani.

>  Tady je otazkou nema-li cely ten SQL engine by cache, IMHO to co
> popisujes ma smysl pro operace, kde je treba s daty udelat jeste neco 
> jineho nez je jen najit (ORDER, UNION apod.).

Jakoze kdyz mam

	select * from jedna_tabulka where podminka
	union
	select * from druha_tabulka where podminka

tak cachovat i ty podcasti? Je to zajimava myslenka, i kdyz jsem ji
nemel v planu.

>  Mno todle ma PostgreSQL udelane skvele a pomerne na dost obecnych 
> zakladech. Abych se priznal proc to jsem se ptal, pisu ted cache
> naparsovanych dotazu (jen tech struktur) pro PG. Tak mne to zajimalo :-)

Velmi chvalyhodne. Ty naparsovana cache je IMO stejne zaklad.

Mch., kdyz uz mas ty internals PostreSQLu nastudovane, da se udelat
nasledujici?

	select * from knihy where contains(nazev, 'perl and mysql') > 0

by se prevedlo na

	create table tmp_result_234234 ( nejake sloupce )
	zavolej externi proces, ktery na zaklade svych rozparsovanych
		poznatku o obsahu sloupce knihy.nazev naplni tabulku
		tmp_result_234234 cisly knih, tkere odpovidaji
	select * from knihy where id in ( select id from tmp_result_234234 )
	drop table tmp_result_234234

? Psal jsem fulltextove parsovatko MyConText v Perlu (nyni to
adoptoval Thomas Mather a je to na CPANu jako DBIx::FullTextSearch),
pak jsem to rozsiroval i na PostgreSQL. Pokud by slo udelat to, co
popisuji nahore, tedy vzit select a misto funkce

	and contains(sloupec, 'hodnota') > 0

tam dat

	and primarni_klic in ( select primarni_klic from
		pomocne_tabulka_mezitim_externim_procesem_naplnena )

meli bychom v PostgreSQL to, co ma Oracle jako ConText. Protoze
zajistit triggerama, ze pri zmene toho sloupce se opet externimu
procesu rekne, aby si tu informaci zupdatoval, je uz trivialni.

-- 
------------------------------------------------------------------------
 Honza Pazdziora | adelton na fi.muni.cz | http://www.fi.muni.cz/~adelton/
   .project: Perl, DBI, Oracle, MySQL, auth. WWW servers, MTB, Spain.
Petition for a Software Patent Free Europe http://petition.eurolinux.org
------------------------------------------------------------------------


Další informace o konferenci Test