Re: [PHP-DB] indexing error - key length not specified

2007-02-09 Thread Micah Stevens

You can't use that column type as an index because it's variable length.

Make it a varchar or something that's definite to index it.

-Micah

On 02/09/2007 03:56 PM, John Pillion wrote:

I am trying to set an index on a field in my table, but am getting the
following error:

 


BLOB column 'ReadBy' used in key specification without a key length

 


The fieldtype is blob, though I get the same error whether blob or text, or
the medium and long versions of each.  My first though, based on the error,
was I needed to set a length to the field - but it won't accept/store any
length I give it (because it's a variable length?)

 


I'm using mysql on from 1and1 (hosting provider), though I don't know what
version they're running

 


.. any thoughts?

 

 


As an alternative, how much less efficient would it be to do a .LIKE
'%mystring%' versus a MATCH..?

 

 



  


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



RE: [PHP-DB] indexing error - key length not specified

2007-02-09 Thread John
Micah,


 You can't use that column type as an index because it's variable length.

Makes sense.


 Make it a varchar or something that's definite to index it.

It is possible the value stored can reach up to about 2k characters, which
is too long for a varchar type.  Any recommendations as to what type to use
that wouldn't be variable length, but be able to store strings/values of
that size?

Thanks!

John

-Original Message-
From: Micah Stevens [mailto:[EMAIL PROTECTED] 
Sent: Friday, February 09, 2007 6:29 PM
To: John Pillion
Cc: php-db@lists.php.net
Subject: Re: [PHP-DB] indexing error - key length not specified

You can't use that column type as an index because it's variable length.

Make it a varchar or something that's definite to index it.

-Micah

On 02/09/2007 03:56 PM, John Pillion wrote:
 I am trying to set an index on a field in my table, but am getting the
 following error:

  

 BLOB column 'ReadBy' used in key specification without a key length

  

 The fieldtype is blob, though I get the same error whether blob or text,
or
 the medium and long versions of each.  My first though, based on the
error,
 was I needed to set a length to the field - but it won't accept/store any
 length I give it (because it's a variable length?)

  

 I'm using mysql on from 1and1 (hosting provider), though I don't know what
 version they're running

  

 .. any thoughts?

  

  

 As an alternative, how much less efficient would it be to do a .LIKE
 '%mystring%' versus a MATCH..?

  

  


   

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

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



Re: [PHP-DB] indexing error - key length not specified

2007-02-09 Thread Micah Stevens
Perhaps I should of spoke more exactly. In MySQL 5.0 you can index 
these, but the maximum index length is limted by the storage engine. So 
you have to be specific as to how you index these columns.


The deal is that with large column fields making an index of several 
thousand characters (for example) doesn't help you that much, the index 
gets as big as the field (comparatively) and the performance gains from 
having an index is marginal, as I understand it. (an expert is free to 
jump in at this point)


So one might want to analyze why you're indexing this field at all. 
Perhaps something specialized like a fulltext index is more appropriate.


Take a look at this page in the docs: 
http://dev.mysql.com/doc/refman/5.0/en/indexes.html


It explains it somewhat. You can as it mentions specify the index size 
which the db should take, but you'll be indexing a subset of the actual 
data with the col_name() style of statement.


In my opinion, you might want to take a look at why you want to index 
such a large column, I don't see a reason myself unless it's something 
like a fulltext index.


I hope that helps,
-Micah

On 02/09/2007 04:59 PM, John wrote:

Micah,


  

You can't use that column type as an index because it's variable length.



Makes sense.


  

Make it a varchar or something that's definite to index it.



It is possible the value stored can reach up to about 2k characters, which
is too long for a varchar type.  Any recommendations as to what type to use
that wouldn't be variable length, but be able to store strings/values of
that size?

Thanks!

John

-Original Message-
From: Micah Stevens [mailto:[EMAIL PROTECTED] 
Sent: Friday, February 09, 2007 6:29 PM

To: John Pillion
Cc: php-db@lists.php.net
Subject: Re: [PHP-DB] indexing error - key length not specified

You can't use that column type as an index because it's variable length.

Make it a varchar or something that's definite to index it.

-Micah

On 02/09/2007 03:56 PM, John Pillion wrote:
  

I am trying to set an index on a field in my table, but am getting the
following error:

 


BLOB column 'ReadBy' used in key specification without a key length

 


The fieldtype is blob, though I get the same error whether blob or text,


or
  

the medium and long versions of each.  My first though, based on the


error,
  

was I needed to set a length to the field - but it won't accept/store any
length I give it (because it's a variable length?)

 


I'm using mysql on from 1and1 (hosting provider), though I don't know what
version they're running

 


.. any thoughts?

 

 


As an alternative, how much less efficient would it be to do a .LIKE
'%mystring%' versus a MATCH..?