RES: phpMyAdmin, localhost, mysql overhead

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Thank u Nitsan. I?ll proceed with my app now.

 

Zechim

 

De: nitsan@xxxxxxxxxxxx [mailto:nitsan@xxxxxxxxxxxx] Em nome de Nitsan
Bin-Nun
Enviada em: sexta-feira, 12 de junho de 2009 15:01
Para: Jônatas Zechim
Cc: php-general@xxxxxxxxxxxxx
Assunto: Re:  phpMyAdmin, localhost, mysql overhead

 

There is no way to avoid it since whenever you delete a row in a myisam
table you create a space in the order of the rows, this space is expressed
by a little bit of extra file size of the database.
This extra file size is called in phpmyadmin as "overhead", you can kill
this over head either by running some INSERT queries which will fill the
space with the inserted rows or running an OPTIMISE query.

In general, I don't think that there is anything that you should do or take
care of, it is not rocket science and your tables will be good with or
without the overhead ;)

Nitsan

On Fri, Jun 12, 2009 at 7:41 PM, Jônatas Zechim <zechim.php@xxxxxxxxx>
wrote:

I have other tables running but only this give me ?overhead?.



I?d know why this table does this and if is bad for my MySQL Server?

Is there anyway to avoid it?



Zechim



De: nitsan@xxxxxxxxxxxx [mailto:nitsan@xxxxxxxxxxxx] Em nome de Nitsan
Bin-Nun
Enviada em: sexta-feira, 12 de junho de 2009 14:33
Para: Jônatas Zechim

Cc: php-general@xxxxxxxxxxxxx

Assunto: Re:  phpMyAdmin, localhost, mysql overhead




I haven't read all your mail, I'm sorry for it in advance, but I think that
you should know that "overheard" is just a blasting phrase for something
which was made up by phpmyadmin.

Basically, when you run a lot of DELETE or UPDATE queries on a table an
"overhead" is created, generally speaking this "overhead" is a space between
rows in the database file, which will cause mysql engine to insert rows into
this space on future INSERT queries.

You can imagine your table as a hard drive, every couple of months (some may
say weeks) you have to run a de-fragment on it, you can do the same with
your database table, look up the query OPTIMIZE TABLE which will do the
de-frag for you :)

If you have any further questions feel free to bring them up.

Regards,
Nitsan

On Fri, Jun 12, 2009 at 7:02 PM, Jônatas Zechim <zechim.php@xxxxxxxxx>
wrote:

Hi there, i have this table running on my localhost:

CREATE TABLE `caffecheckout_compra_itens` (
 `compra_key` varchar(23) NOT NULL,
 `item_id` int(5) NOT NULL,
 `item_valor` decimal(10,2) NOT NULL,
 `item_peso` decimal(5,3) NOT NULL,
 `item_qtd` int(3) NOT NULL,
 `item_data` int(10) NOT NULL,
 `item_obs` varchar(100) NOT NULL,
 PRIMARY KEY  (`item_id`),
 KEY `compra_key` (`compra_key`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;


It's on my Server, but when I add a row and after remove that I'd overhead
this table (58bytes/row), anyone know why is this happening?

I run this SQL:

INSERT INTO
      caffecheckout_compra_itens
      (compra_key,item_id,item_valor,item_peso,item_qtd,item_data)
VALUES
      ('12448259804a32897ce1116','2','19.90','0.250',1,'1244825980')
ON DUPLICATE KEY UPDATE
      item_qtd=item_qtd+1

And after:

DELETE FROM
      caffecheckout_compra_itens
WHERE
      compra_key='12448259804a32897ce1116'


Zechim


-----Mensagem original-----
De: Andrew Ballard [mailto:aballard@xxxxxxxxx]
Enviada em: sexta-feira, 12 de junho de 2009 09:38
Para: revDAVE
Cc: php-general@xxxxxxxxxxxxx
Assunto: Re:  Field type for american money

On Thu, Jun 11, 2009 at 4:08 PM, revDAVE<Cool@xxxxxxxxxxxxxxxx> wrote:
> Php - MySQL - newbie question
>
> - Field type for american money - int(11) seems to work fine
>
> - but also I tried decimal(10,2)
>
> Is one a better choice than another for american money usage?
>
>
> --
> Thanks - RevDave
> Cool @ hosting4days . com
> [db-lists 09]

It depends on what you need to store, honestly. If all your dollar
amounts are integers, int would work fine. If you need decimals,
decimal(10, 2) would be fine for a lot of applications. However, a lot
of financial applications need a little more precision. SQL Server has
a money datatype that looks like it's about equivalent to decimal(19,
4) and a smallmoney type that looks like it's equivalent to
decimal(10, 4). That handles things like gas prices that always have
that extra 9/10 of a penny tacked onto them, or items that are 3 for a
dollar. If you enter a price of 0.33 in a decimal(10, 2) field,
multiplying that by 3 will result in 0.99, whereas three items priced
at 0.3333 will come to 0.9999, which when formatted to two digits will
round to 1.00.

Andrew

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php




 


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux