...and because no one has been really cynical...

After that query runs, then prepare for a coffee overload whilst you perform the ALTER 
TABLE, then get ready
because if you shorten the field to (say) 12 characters/bytes the very next day, 
someone with a 13 character
name is going to try to register!

I'm wondering just how much space this 'little' exercise is going to save, either as a 
ratio of the size of the
db, or as a ratio of HDD size?

My glass is half-empty!
=dn


----- Original Message -----
From: "Michael Stearne" <[EMAIL PROTECTED]>
To: "Roger Karnouk" <[EMAIL PROTECTED]>
Cc: <[EMAIL PROTECTED]>
Sent: 24 January 2002 22:58
Subject: Re: Tighly packed table


> The problem is, this query really hurts (I don't know if it finishes)
> for unindexed field for 2.9 million rows.  But I'm sure it will finish
> eventually.
>
> Michael
>
> Roger Karnouk wrote:
>
> >select max(length(firstname)) from TableName;
> >
> >-----Original Message-----
> >From: Michael Stearne [mailto:[EMAIL PROTECTED]]
> >Sent: Thursday, January 24, 2002 4:38 PM
> >To: Christopher Thompson
> >Cc: [EMAIL PROTECTED]
> >Subject: Re: Tighly packed table
> >
> >
> >Christopher Thompson wrote:
> >
> >>At 04:10 PM 1/24/2002 -0500, Michael Stearne wrote:
> >>
> >>>We have a somewhat large read-only table (2.9 million recs). I am
> >>>wonder if there is a utility that will look at each row of each
> >>>columns and come up with a summary of the largest field (in character
> >>>length) for each column.  For example, scan each row's firstname
> >>>field and report that the longest first name is 12 characters.  That
> >>>way I can ALTER the firstname field to be a char or varchar of 12?
> >>>What would be better BTW?
> >>>
> >>
> >>I don't know if CHAR or VARCHAR is better for you but as to the query
> >>here, it would seem easiest to write a short program to query all the
> >>rows and programatically determine the longest column length.
> >>
> >>That said, you could probably set up a SQL statement for it.  There's
> >>a LENGTH function in SQL, isn't there?  The statement would look
> >>SIMILAR to the following:
> >>
> >>SELECT MAX(LENGTH(t1.FIRSTNAME)) AS fnamelength FROM TableFoo t1,
> >>TableFoo t2 WHERE LENGTH(t2.FIRSTNAME) <= fnamelength;
> >>
> >
> >Looks good to me, thanks.
> >
> >Michael
> >
> >>(Please note that my university SQL instructor pointed out that I
> >>wrote SQL statements backwards to anyone else he had ever taught.  For
> >>that matter, I did Prolog backwards, too.  :)
> >>
> >>
> >>
> >>---------------------------------------------------------------------
> >>Before posting, please check:
> >>  http://www.mysql.com/manual.php   (the manual)
> >>  http://lists.mysql.com/           (the list archive)
> >>
> >>To request this thread, e-mail <[EMAIL PROTECTED]>
> >>To unsubscribe, e-mail
> >><[EMAIL PROTECTED]>
> >>Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php
> >>
> >
> >
> >
> >
> >---------------------------------------------------------------------
> >Before posting, please check:
> >   http://www.mysql.com/manual.php   (the manual)
> >   http://lists.mysql.com/           (the list archive)
> >
> >To request this thread, e-mail <[EMAIL PROTECTED]>
> >To unsubscribe, e-mail
> ><[EMAIL PROTECTED]>
> >Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php
> >
> >
>
>
>
>
> ---------------------------------------------------------------------
> Before posting, please check:
>    http://www.mysql.com/manual.php   (the manual)
>    http://lists.mysql.com/           (the list archive)
>
> To request this thread, e-mail <[EMAIL PROTECTED]>
> To unsubscribe, e-mail 
><[EMAIL PROTECTED]>
> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php
>
>


---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to