Hello.
>still stop at the 10M limit on memory tables anyway. What's the value of max_heap_table_size? See: http://dev.mysql.com/doc/mysql/en/server-system-variables.html [EMAIL PROTECTED] wrote: > Thanks that gives me options, yes table was already created what I wanted > was for the table itself to know that when MySql reloads to go an get all > from another table. > > I was understanding this was just something I did when I created the table > the first time as a Character of the table to know on load select * from > Test2 > > This allows me to maintain stability and speed at the same time. While I > write to 2 tables I always read from 1 and reading is done 95 times more > often at least. > > I have set the My.cnf to 128M for memory tables as default but it appears I > still stop at the 10M limit on memory tables anyway. Should I add something > into the creation of the table to override the defaults locally with that > table? > > Thanks > Donny Lairson > President > 29 GunMuse Lane > P.O. box 166 > Lakewood NM 88254 > http://www.gunmuse.com > 469 228 2183 > > > -----Original Message----- > From: Michael Stassen [mailto:[EMAIL PROTECTED] > Sent: Monday, March 14, 2005 8:28 AM > To: [EMAIL PROTECTED] > Cc: Gleb Paharenko; mysql@lists.mysql.com > Subject: Re: Auto loading a table > > > [EMAIL PROTECTED] wrote: > > > [Donny Lairson] Quick bump I never got an answer > > > > I have a table fsearch_temp I use it as a memory table to keep things > > light and fast but after a restart I want to repopulate some data > > automatically. So I thought I just said load from TEST2 which would by a > > myisam table containing the hardbackup I need. But obviously not the > > right way of saying this. I must be reading the instructions wrong can > > someone clarify this for me? > <snip> > > Which instructions are you reading? I expect you get a syntax error, right? > From the manual <http://dev.mysql.com/doc/mysql/en/create-table.html>, the > correct syntax is > > CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name > [(create_definition,...)] > [table_options] [select_statement] > > Gleb Paharenko wrote: >> Hello. >> >>>) ENGINE = MEMORY LOAD FROM TEST2 DEFAULT CHARSET = utf8 AUTO_INCREMENT =0 >> >> You should use select statement, not LOAD. For example: >> CREATE TABLE ..... SELECT * FROM TEST2; >> >> And table options like DEFAULT CHARSET you should put before select > statement. >> See: >> http://dev.mysql.com/doc/mysql/en/create-table.html > > > I think this is accurate but misleading. CREATE ... SELECT adds columns > from the SELECT to the columns defined in the CREATE, so you cannot fix this > simply by getting the last line right. You have to leave out the column > definitions. On the other hand (from the manual page you cite), > > CREATE TABLE ... SELECT does not automatically create any indexes for > you. This is done intentionally to make the statement as flexible as > possible. If you want to have indexes in the created table, you should > specify these before the SELECT statement... > > so you do need to keep the index definitions. Thus, assuming fsearch_temp's > create_definition matches that of table TEST2, to create fsearch_temp as a > copy of TEST2, you would > > CREATE TABLE fsearch_temp > ( PRIMARY KEY (fsearchId), KEY fsearchIp (fsearchIp) > ) ENGINE = MEMORY DEFAULT CHARACTER SET utf8 > SELECT * FROM TEST2; > > but I don't think this is what you want, either. > > First, there is this caveat (from the manual): > > Some conversion of column types might occur. For example, the > AUTO_INCREMENT attribute is not preserved, and VARCHAR columns can > become > CHAR columns. > > To avoid that, you need to first CREATE the table, then populate it with a > copy of TEST2 in a separate INSERT ... SELECT statement. See the manual for > details <http://dev.mysql.com/doc/mysql/en/insert-select.html>. > > In any case, MEMORY tables don't go away unless they are dropped. Only the > rows disappear when mysql stops. If you've previously created this table > and haven't dropped it, it should still exist as an empty table on startup. > In that case, you only need to reload the rows. > > INSERT INTO fsearch_temp SELECT * FROM TEST2; > > Michael > > -- > MySQL General Mailing List > For list archives: http://lists.mysql.com/mysql > To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED] > > > > -- For technical support contracts, goto https://order.mysql.com/?ref=ensita This email is sponsored by Ensita.NET http://www.ensita.net/ __ ___ ___ ____ __ / |/ /_ __/ __/ __ \/ / Gleb Paharenko / /|_/ / // /\ \/ /_/ / /__ [EMAIL PROTECTED] /_/ /_/\_, /___/\___\_\___/ MySQL AB / Ensita.NET <___/ www.mysql.com -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]