<p>My side question is there really any difference between tinyblob &amp; tinytext?  </p>

<p>Buy my real question is what reason, if any, would I choose varchar(255) over tinyblob or tinytext? </p>

Primarily
storage requirements
and memory handling/speed:
In the following table,
```
M
```
represents the declared column length in characters for nonbinary string types and bytes for binary string types.
```
L
```
represents the actual length in bytes of a given string value.
VARCHAR(
```
M
```
), VARBINARY(
```
M
```
):
```
L
```
+ 1
  bytes if column values require 0 – 255
  bytes,
```
L
```
+ 2 bytes if values may
  require more than 255 bytes
TINYBLOB, TINYTEXT:
```
L
```
+ 1 bytes, where
```
L
```
< 2
8
Additionally, see
this
post:
For each table in use, MySQL allocates
  memory for 4 rows. For each of these
  rows CHAR(X)/VARCHAR(X) column takes
  up the X characters.
A TEXT/BLOB on the other hand is
  represented by a 8 byte pointer + a
  1-4 byte length (depending on the
  BLOB/TEXT type). The BLOB/TEXT is
  allocated dynamicly on use. This will
  use less memory, but in some cases it
  may fragment your memory in the long
  run.
Edit
: As an aside, blobs store binary data and text stores ASCII, thats the only difference between TINYBLOB and TINYTEXT.