One last question, maybe :)

Is there any way to empty the key buffer once the server is started ?
That would be handy :)

Thanks


On Tue, 22 Feb 2005 11:13:29 +0100, HMax <[EMAIL PROTECTED]> wrote:
> Hi again,
> 
> I worked on the problem and found a way to make the LOAD INDEX INTO
> CACHE work on my main tables now.
> 
> I actually found out that some of my indexes using varchar could be
> optimized because they aren't used for search but ordering
> (alphabetical and such). So having a index length of 255 on this index
> isn't really useful, and I tuned it so that it's 24 chars long. (I
> didn't put more because it's a multiple index with other fields type).
> Then all my indexes are using 1024 block size now, and the LOAD INDEX
> INTO CACHE works like a charm, showing much improved performance with
> all the RAM available.
> 
> Anyway, thanks again for all your explaination. It's always good to
> know how things work in the core. I can better handle how I index my
> tables knowing I want to put all their indexes in cache at start.
> 
> Happy programming !
> 
> On Mon, 21 Feb 2005 21:46:13 +0100, Sergei Golubchik <[EMAIL PROTECTED]> 
> wrote:
> > Hi!
> >
> > On Feb 21, HMax wrote:
> > > Thank you for your answer Sergei,
> > >
> > > It's all clear now, and I'm glad to know where the problem comes from.
> > >
> > > Now if I understand correctly, my only solution is to manage to create
> > > indexes in my tables that ALL have the same block size (1024). This
> > > would mean reducing the size of the indexes on my Varchar fields,
> > > which I think I can. What is the max characters I should use when
> > > indexing my Varchar so that block size are 1024 ? (if possible of
> > > course). I have no idea how to calculate this.
> >
> > You'd better try with trial-and-error.
> > myisamchk -dvv shows block size. It's enough to create an empty table
> > and run myisamchk -dvv on it.
> >
> > The formula is in mi_create.c but I would spend more time unrolling all
> > the defines and deriving max varchar langth, that you would do with
> > trial-and-error :)
> >
> > > And is there absolutly no way to force 1024 block size even for
> > > varchar ?
> >
> > No, but you can make it 2048 for normal indexes.
> > Block length is a multiple of myisam_block_size, so if you set it to
> > 2048, all indexes will use it. (of course it'll be suboptimal for
> > everything but the long varchar keys. And even if you have an index over
> > VARCHAR(255), actual values are usually shorter, right ?)
> >
> > Regards,
> > Sergei
> >
> > --
> >   __  ___     ___ ____  __
> >  /  |/  /_ __/ __/ __ \/ /   Sergei Golubchik <[EMAIL PROTECTED]>
> > / /|_/ / // /\ \/ /_/ / /__  MySQL AB, Senior Software Developer
> > /_/  /_/\_, /___/\___\_\___/  Osnabrueck, Germany
> >       <___/  www.mysql.com
> >
> 
> --
> HMax
> 


-- 
HMax

-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to