Hi,
The index settings for a database can make a huge difference to query performance. I have been playing with a database where the time for a query using distinct-values went from 4secs to 4ms by increasing the MAXCATS value. Currently it is rather fiddly to change these values, particularly to this programmatically. with different values per database.
I would find it useful there was an easier way to do this. A quick suggestion as to how this might be done:
db:optimize could be extended to taker a third argument that matched the format of in indexes portion of the db:info command
<indexes> <uptodate>true</uptodate> <textindex>ON</textindex> <attributeindex>ON</attributeindex> <fulltextindex>OFF</fulltextindex> <updindex>OFF</updindex> <maxcats>100</maxcats> <maxlen>96</maxlen> </indexes>
e.g db:optimize("mydb",fn:true(),$indexopts)
This would rebuild "mydb" using the settings specified in $indexopts. The extra argument could also be added to db:create.
/Andy