Not sure if this is a "better" idea or faster, but
I'd look into using rand() function and limit ... (not tested)

select X from Y where int(rand()*50000) = 1 limit 1


On Wed, Jul 02, 2003 at 07:32:13PM +0400, ??????? ?????? wrote:
> Hello.
> 
> I have big table (50 000 records, 100 Mb), and want to get 1 random
> record from it.
> 
> CREATE TABLE news (
>   id int(10) unsigned NOT NULL auto_increment,
>   description varchar(255) NOT NULL default '',
>   PRIMARY KEY  (id)
> ) TYPE=MyISAM PACK_KEYS=1 CHECKSUM=1 DELAY_KEY_WRITE=1;
> 
> 
> $max_id='SELECT MAX(id) FROM news';
> $id = int(rand()*$max_id+1);
> 'SELECT description WHERE ID='.$id;
> 
> it's vary slow way. May be somebody have better idia?
> I use MySQL 3.23
  • ... Rudy Lippan
    • ... Монашёв Михаил
      • ... Michael A Chase
        • ... Монашёв Михаил
      • ... Thomas A. Lowery
        • ... Монашёв Михаил
        • ... Ronald J Kimball

Reply via email to