Thanks! Ok, will do :-)

On Tue, Jul 31, 2007, Andrea Brancatelli <[EMAIL PROTECTED]> said:

> Ok, i'll write some more rants about optimizing innodb tomorrow if i have
> some more time.
> 
> Please fix my English before reproduce it :-)
> 
> -----Messaggio originale-----
> Da: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Per conto
> di Aaron Stone
> Inviato: marted� 31 luglio 2007 20.50
> A: DBMail mailinglist
> Oggetto: Re: R: [Dbmail] Advantages of innodb_file_per_table (was:
> 
> Great writeup. Now on the wiki at:
> 
> http://dbmail.org/dokuwiki/doku.php?id=mysql_notes
> 
> I left a space where we should include more information about configuring
> InnoDB parameters for good performance. This does tend to be a FAQ, and
> the bits of information we do have about it are scattered all over the
> place.
> 
> Aaron
> 
> 
> On Tue, Jul 31, 2007, Andrea Brancatelli <[EMAIL PROTECTED]> said:
> 
>> Just an addendum.
>> 
>> With innodb_file_per_table whenever you delete a table or a database, the
>> whole .idb file gets deleted so you instantly get your space back. Maybe I
>> wasn't clear enough on this in the latest lines of my mail.
>> 
>> -----Messaggio originale-----
>> Da: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Per conto
>> di Andrea Brancatelli
>> Inviato: marted� 31 luglio 2007 17.16
>> A: 'DBMail mailinglist'
>> Oggetto: R: [Dbmail] Advantages of innodb_file_per_table (was:
>> Tabledbmail_messages is full)
>> 
>> I partially explained in my last email.
>> 
>> Let me try to summarize everything. 
>> 
>> WITHOUT innodb_file_per_table:
>>  - you have one shared tablespace for all the tables. This gives you the
>> advantage of limiting the space your db will be using (unless you activate
>> the autoextend) but give you the disadvantage of preallocating all the
> space
>> you'll be using
>>  - the problem everyone is having is because on the autoextend. Actually
>> it's conceptually wrong to use the autoextend when you have a single
>> tablespace, because whenever your DB will grow, the tablespace will grow,
>> but it will never get smaller, even when you delete a table or when you
> run
>> an optimize
>>  - the optimize table issue is pretty simple. When you run optimize table,
>> it simple re-create the whole table you're creating, writing all the datas
>> sequentially. This gives you a certain degree of speed when you'll be
>> accessing datas later, but may be a problem because at a certain moment (a
>> second before the optimize finish) you'll end up having 2 copies of the
> same
>> table: the old one, and the new temporary one that will be renamed as the
>> new one. If you are using the shared tablespace with the autoextend this
>> will probably mean that your shared tablespace will GROW because the
> amount
>> of datas will double, and when the optimize will finish the old table will
>> be deleted and all the hypothetically-free space will just sit there
> waiting
>> to be used. This is the key point. InnoDB doesn't free the disk space
>> because it just wait for the space to be used again, because it's designed
>> to be used in an environment where you preallocate the space for the db.
> So
>> since you preallocated it, why should you care about freeing it?
>> 
>> 
>> WITH innodb_file_per_table:
>>  - you have one (actually two) file per each InnoDB table. Each
> table/index
>> file will stay in the database directory (which _to me_ appears as another
>> big advantage)
>>  - when you add a table you get another .idb file. Whenever your table
> grow,
>> the idb file grows, and your filesystem space decrease
>>  - the optimize process here gets interesting. When you run optimize table
>> the innodb engine will start to create a NEW .idb file with a temporary
>> name, using only the space it actually needs to store the datas. When the
>> optimize table has ended, it will delete the old .idb file and rename the
>> temporary one to the correct name. this mean that if your old table's .idb
>> file had grown up to 3, 4, 5, 100 GB but you have only 100 MB of datas in
>> it, the new .idb file will be 100MB while the one that will be deleted was
>> 3, 4, 5, 100GB.
>> 
>> 
>> That's it in term of space. In terms of speed or whatever else I can't say
>> if there's any advantage as I haven't done any testing myself, but what I
>> can assure you for sure is that, having any .idb in every directory you
> can
>> mount directory from different HDs or RAIDs for different DBs thus having
>> better racing conditions within the same MySQL server.
>> 
>> Probably you could achieve the same result having more than one shared
>> tablespace, but frankly I have no experience with this.
>> 
>> 
>> Summarizing everything:
>> 
>>  - If you have a single DB server: use a shared InnoDB tablespace
>> preallocating the space and disabling the autoextend. Using the optimize
>> table will give you a better optimization of the tables, and you'll have
> no
>> problem with the space as it's already allocated up to a fixed size
>> 
>>  - If you have a machine with various tasks going on, like a mail server,
>> web server, db server and whatever, use the innodb_file_per_table. Usigon
>> the optimize table you'll reclaim your space back whenever you delete
>> anything or whenever any table will significantly decrease in size.
>> 
>> 
>> Doubt? Question? Fear? Panic?
>> 
>> 
>> -----Messaggio originale-----
>> Da: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Per conto
>> di Peter Rabbitson
>> Inviato: marted� 31 luglio 2007 16.52
>> A: DBMail mailinglist
>> Oggetto: [Dbmail] Advantages of innodb_file_per_table (was: Table
>> dbmail_messages is full)
>> 
>> Hi,
>> Sorry for hijacking the thread. Can someone clarify what is the 
>> advantage of using innodb_file_per_table versus one infinitely growing 
>> tablespace?
>> 
>> Thanks
>> 
>> Peter
>> _______________________________________________
>> DBmail mailing list
>> DBmail@dbmail.org
>> https://mailman.fastxs.nl/mailman/listinfo/dbmail
>> 
>> _______________________________________________
>> DBmail mailing list
>> DBmail@dbmail.org
>> https://mailman.fastxs.nl/mailman/listinfo/dbmail
>> 
>> 
>> _______________________________________________
>> DBmail mailing list
>> DBmail@dbmail.org
>> https://mailman.fastxs.nl/mailman/listinfo/dbmail
>> 
> 
> -- 
> 
> 
> 
> _______________________________________________
> DBmail mailing list
> DBmail@dbmail.org
> https://mailman.fastxs.nl/mailman/listinfo/dbmail
> 
> _______________________________________________
> DBmail mailing list
> DBmail@dbmail.org
> https://mailman.fastxs.nl/mailman/listinfo/dbmail
> 

-- 



_______________________________________________
DBmail mailing list
DBmail@dbmail.org
https://mailman.fastxs.nl/mailman/listinfo/dbmail

Reply via email to