I was thinking though, this relies on autonumber fields, which ideally would be switched with unique ID fields to support multiple servers at some point. So maybe this isn't ideal.
-Micah On Wednesday 09 June 2004 05:11 pm, Micah wrote: > Is the header block always the first block inserted? If so you can find it > by ordering the blocks by idnr and just taking the first one. No extra > field necessary.. > > I don't think there would be a performance difference at all between the > two methods and it would keep the table structure simpler, which to me is > better. > > Just a thought. > > -Micah > > On Wednesday 09 June 2004 05:00 pm, Aaron Stone wrote: > > Off the top of my head, there's a two step process here. First is that > > the top level, messgae-oriented functions will need an extra flag. Second > > is that the inner physmessage functions will need that flag, too. > > > > db_insert_message_block() and db_insert_message_block_physmessage(). > > > > I don't think we should wait on 2.0 for this. We can tweak performance in > > the point releases. We should add whatever columns we'll need to support > > the functionality, though. > > > > Aaron > > > > Paul J Stevens <[EMAIL PROTECTED]> said: > > > Hi Ilja, > > > > > > The wiki looks pretty much empty so I just started playing around. > > > > > > I've been testing with a messageblks.is_header field so > > > db_fetch_headers will not retrieve the whole message before parsing. > > > > > > Looks like we may get something like a factor 2 improvement in > > > searching headers. > > > > > > I still have to figure out how to modify message insertion to use such > > > a field. Perhaps you or Aaron have some bright ideas. > > > > > > For now I've modified the database by hand using group by queries to > > > locate messageblk_idnr for the header block and a shell-script to > > > generate update queries. > > > > > > queries used: > > > > > > alter table messageblks add is_header int(1) not null default 0; > > > > > > update the messageblk table: > > > > > > #> mysql --skip-column-names -B -e "select messageblk_idnr from > > > messageblks group by physmessage_id" dbmail |awk 'BEGIN { > > > printf("\nupdate messageblks set is_header=1 where messageblk_idnr in > > > ("); } { if(NR % 200 == 0) { printf("\nupdate messageblks set > > > is_header=1 where messageblk_idnr in ("); i=0; } else { > > > printf("%s,",$1); }}'|sed 's/,$/);/' | mysql dbmail > > > > > > > > > #> mysql -B -e "select messageblk_idnr from messageblks group by > > > physmessage_id" dbmail |awk '{ if(NR % 50 == 0) { printf("\nupdate > > > messageblks set is_header=1 where messageblk_idnr in ("); i=0; } else { > > > printf("%s,",$1); }}'|sed 's/,$/);/' > > > > > > Ilja Booij wrote: > > > > Paul J Stevens wrote: > > > >> Hi all, > > > >> > > > >> I'm looking to optimize _ic_search without resorting to drastics. > > > >> > > > >> I noticed dbmsgbuf.c retrieves the full message from the database in > > > >> two functions. In both cases first the physmessage_id is queried > > > >> using the msgid, followed by a query on the messageblks table using > > > >> the physmessage_id. Two queries where one suffices. A simple but > > > >> effective improvement I think. Query syntax (left join ... using > > > >> ...) checked on mysql/postgres (dunno about oracle or ansi-sql). > > > >> > > > >> I also fixed some of the FIXME's ... > > > >> > > > >> Ilja? > > > > > > > > Looks good. I'v committed the patch. > > > > > > > >> PS. Of course searching still sucks major :-( until we get some real > > > >> header caching... > > > > > > > > true.. > > > > > > > > Ilja > > > > _______________________________________________ > > > > Dbmail-dev mailing list > > > > Dbmail-dev@dbmail.org > > > > http://twister.fastxs.net/mailman/listinfo/dbmail-dev > > > > > > -- > > > ________________________________________________________________ > > > Paul Stevens mailto:[EMAIL PROTECTED] > > > NET FACILITIES GROUP PGP: finger [EMAIL PROTECTED] > > > The Netherlands________________________________http://www.nfg.nl > > _______________________________________________ > Dbmail-dev mailing list > Dbmail-dev@dbmail.org > http://twister.fastxs.net/mailman/listinfo/dbmail-dev