Great explanison. I guest this is the point. after
each time the table crashed during such process, it
always followed a error message saying something about
the memory violation. 
Thanks a lot. your idea also open my mind and deeper
my understanding about mysql.

Monet

--- Dathan Vance Pattishall <[EMAIL PROTECTED]>
wrote:

> IN is a fantastic operator, but there are some
> limitations especially memory
> wise.
> 
> Check out this algorithm
> 
> Say you're using an Integer with an average of 8
> digits, i.e. in the 100s
> millions, now you send an in list of say 20 of these
> 8 digits numbers. Since
> the data is passed to mysql as a string, the parser
> has to allocate memory
> for 160 bytes (20 * 8 bytes) + 19 bytes for each
> comma. 339 bytes BAH that's
> nothing right? Well, these are bytes allocated
> outside of a key buffer, thus
> if your key buffer is set to 1.9 GB on a 32 bit
> system, your application has
> many of these IN list passed to it, mysql will crash
> because it just hit the
> 2 GB limit.
> 
> Does this explain your issue, no not necessarily but
> it's good to add and
> might explain some weird experiences.
>   
> 
> DVP
> ----
> Dathan Vance Pattishall    
> http://www.friendster.com
> 
> 
> > -----Original Message-----
> > From: Monet [mailto:[EMAIL PROTECTED]
> > Sent: Monday, September 13, 2004 10:22 AM
> > To: [EMAIL PROTECTED]
> > Cc: [EMAIL PROTECTED]
> > Subject: Re: IN operator
> > 
> > Hi there,
> > I used very likely statement last week to update
> one
> > table. My IN value is around 20. I checked the
> manual
> > and there is nothing about any limitation on IN
> > values.
> > However, when i was running it, it worked very
> well
> > sometimes, while sometimes, the query crashed in
> the
> > middle and i have to REPAIR table. I've not figure
> out
> > the reason of the crash yet. but i think you
> should be
> > aware of it.
> > 
> > Monet
> > 
> > --- Oliver Hirschi <[EMAIL PROTECTED]> wrote:
> > 
> > > Hi people
> > >
> > > Due to MySQL does not support "inner-selects", I
> > > generate a string (I
> > > programm java-client) with the values I used in
> an
> > > IN-operator for an
> > > update onto a mySQL database.
> > >
> > > The statement looks like this:
> > > UPDATE layer SET State=1
> > > WHERE fpObjectID IN
> (1,3,4,5,20,34,56,24,56,11,45)
> > >
> > > Now, the question came up if there is a maximum
> of
> > > values or length in
> > > an IN operator which can used on mySQL?
> > >
> > > Does anybody know something about that?
> > >
> > > Thanks & Regards
> > > --
> > > Oliver Hirschi
> > > http://www.FamilyHirschi.ch
> > >
> > >
> > >
> > > --
> > > MySQL General Mailing List
> > > For list archives: http://lists.mysql.com/mysql
> > > To unsubscribe:
> > >
> >
>
http://lists.mysql.com/[EMAIL PROTECTED]
> > >
> > >
> > 
> > 
> > 
> > 
> > _______________________________
> > Do you Yahoo!?
> > Declare Yourself - Register online to vote today!
> > http://vote.yahoo.com
> > 
> > --
> > MySQL General Mailing List
> > For list archives: http://lists.mysql.com/mysql
> > To unsubscribe:
> >
>
http://lists.mysql.com/[EMAIL PROTECTED]
> 
> 
> --
> MySQL General Mailing List
> For list archives: http://lists.mysql.com/mysql
> To unsubscribe:   
>
http://lists.mysql.com/[EMAIL PROTECTED]
> 
> 



                
_______________________________
Do you Yahoo!?
Declare Yourself - Register online to vote today!
http://vote.yahoo.com

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

Reply via email to