Home | Community | Message Board

Cannabis Seeds UK
This site includes paid links. Please support our sponsors.


Welcome to the Shroomery Message Board! You are experiencing a small sample of what the site has to offer. Please login or register to post messages and view our exclusive members-only content. You'll gain access to additional forums, file attachments, board customizations, encrypted private messages, and much more!

Shop: Unfolding Nature Unfolding Nature: Being in the Implicate Order   PhytoExtractum Maeng Da Thai Kratom Leaf Powder   Kraken Kratom Red Vein Kratom

Jump to first unread post Pages: < Back | 1 | 2  [ show all ]
InvisibleCowgold
Bullshit

Folding@home Statistics
Registered: 04/04/05
Posts: 12,486
Loc: .
Re: the random thread button. [Re: Ythan]
    #7990817 - 02/07/08 08:50 AM (15 years, 11 months ago)

Thanks!


Extras: Filter Print Post Top
Offline2end4
Fuckin Immortal
Male User Gallery


Registered: 02/15/07
Posts: 774
Loc: Aristonda
Last seen: 11 years, 8 months
Re: the random thread button. [Re: implee]
    #7990933 - 02/07/08 09:45 AM (15 years, 11 months ago)

:borat:


--------------------
Praise Bob!


Extras: Filter Print Post Top
InvisibleSenor_Doobie
Snake Pit Champion
 User Gallery


Registered: 08/11/99
Posts: 22,678
Loc: Trump Train
Re: the random thread button. [Re: Ythan]
    #7990964 - 02/07/08 09:55 AM (15 years, 11 months ago)

>if the post numbers in the database are 1, 3, 4 and 5, then '3' is greater then or equal to both 2 and 3, so it will come up twice as often.

Would you mind explaining that a little further? I do not understand and am currently training myself in MYSQL and would like to understand this problem. I would really appreciate it.

Perhaps if you could explain how threads are numbered on the server, that would help me to follow the logic of what you are saying here?

I'd appreciate any more info on that part. Thanks


--------------------
"America: Fuck yeah!" -- Alexthegreat

“Nothing can now be believed which is seen in a newspaper. Truth itself becomes suspicious by being put into that polluted vehicle. The real extent of this state of misinformation is known only to those who are in situations to confront facts within their knowledge with the lies of the day.”  -- Thomas Jefferson

The greatest sin of mankind is ignorance.

The press takes [Trump] literally, but not seriously; his supporters take him seriously, but not literally. --Salena Zeto (9/23/16)


Extras: Filter Print Post Top
OfflineYthanA
ᕕ( ᐛ )ᕗ
Male User Gallery


Registered: 08/08/97
Posts: 18,774
Loc: NY/MA/VT Borderlands Flag
Last seen: 2 hours, 8 minutes
Re: the random thread button. [Re: Senor_Doobie]
    #7993011 - 02/07/08 06:29 PM (15 years, 11 months ago)

I'm happy to elaborate but I'm not sure exactly what you don't understand. Post numbers are stored in an AUTO_INCREMENT INT field. With auto increment, int values aren't reused, so if post number 666 is deleted, it leaves a permanent 'hole' between posts 665 and 667. Here's an example.

4 posts have been made. They are assigned ids 1, 2, 3 and 4 by the auto increment column.

Post #3 is deleted. The ids are now 1, 2, 4.

A new post is made. It's assigned id 5 by auto increment. The ids are now 1, 2, 4, 5.

To get a truly random record you'd do "SELECT * FROM Posts ORDER BY RAND(id) LIMIT 1". But ORDER BY RAND is extremely slow when you have a lot of records. So to approximate a random selection, I first get the id range: "SELECT MIN(id), MAX(id) FROM Posts". Then I generate a random number in PHP: $rand = mt_rand($min, $max). Finally I select the first post with an id greater than or equal to the random number: "SELECT * FROM Posts WHERE id >= $rand ORDER BY id ASC LIMIT 1".

So using the post numbers above for example (1, 2, 4, 5), the results of the first query will be 1 for MIN(id) and 5 for MAX(id). Thus the random number generated by PHP will be between 1 and 5 inclusive. It should gives the following results with equal probability:

Query: SELECT * FROM Posts WHERE id >= 1 ORDER BY id ASC LIMIT 1
Returns: Post #1

Query: SELECT * FROM Posts WHERE id >= 2 ORDER BY id ASC LIMIT 1
Returns: Post #2

Query: SELECT * FROM Posts WHERE id >= 3 ORDER BY id ASC LIMIT 1
Returns: Post #4

Query: SELECT * FROM Posts WHERE id >= 4 ORDER BY id ASC LIMIT 1
Returns: Post #4

Query: SELECT * FROM Posts WHERE id >= 5 ORDER BY id ASC LIMIT 1
Returns: Post #5

As you can see, post #4 is twice as likely to show up as any other post.

Now, all posts are assigned an id, whether they're a main post or a reply. But for selecting a random post I only consider main posts, not replies. So if the breakdown is like this:

1: Main post
2: Reply
4: Reply
5: Main post

for all practical purposes ids 2 and 4 don't exist. Now you get these results:

Query: SELECT * FROM Posts WHERE id >= 1 AND main = 'true' ORDER BY id ASC LIMIT 1
Returns: Post #1

Query: SELECT * FROM Posts WHERE id >= 2 AND main = 'true' ORDER BY id ASC LIMIT 1
Returns: Post #5

Query: SELECT * FROM Posts WHERE id >= 3 AND main = 'true' ORDER BY id ASC LIMIT 1
Returns: Post #5

Query: SELECT * FROM Posts WHERE id >= 4 AND main = 'true' ORDER BY id ASC LIMIT 1
Returns: Post #5

Query: SELECT * FROM Posts WHERE id >= 5 AND main = 'true' ORDER BY id ASC LIMIT 1
Returns: Post #5

So although there are two main posts, #1 and #5, #5 is four times as likely to show up.

And finally, permissions create additional holes. For instance, threads in the admin forum are ignored (unless you're an admin). With the above explanation you can hopefully understand how this further impacts the randomness of the results.

But this is kind of a special case, you shouldn't need to select a random record too often. And if you only have a few thousand records, you can use ORDER BY RAND with no problems. It's only once you have many hundreds of thousands or millions of records that you'll start running into performance issues.


Extras: Filter Print Post Top
Offlineimplee
Cyber Hippie
Male User Gallery

Registered: 07/27/06
Posts: 5,833
Loc: Houston, Texas. Flag
Last seen: 5 months, 19 days
Re: the random thread button. [Re: Ythan]
    #7994120 - 02/07/08 09:56 PM (15 years, 11 months ago)

Ythan do you have a part of shroomery with all the crazy features you added? Cause i cant find half of the old ones i knew about...

Like the most ignored user/highest rated user/other info page... I dont know where to find all the badass features at :frown:


Extras: Filter Print Post Top
OfflineYthanA
ᕕ( ᐛ )ᕗ
Male User Gallery


Registered: 08/08/97
Posts: 18,774
Loc: NY/MA/VT Borderlands Flag
Last seen: 2 hours, 8 minutes
Re: the random thread button. [Re: implee]
    #7994562 - 02/08/08 12:17 AM (15 years, 11 months ago)



Extras: Filter Print Post Top
Offlineimplee
Cyber Hippie
Male User Gallery

Registered: 07/27/06
Posts: 5,833
Loc: Houston, Texas. Flag
Last seen: 5 months, 19 days
Re: the random thread button. [Re: Ythan]
    #7994784 - 02/08/08 02:40 AM (15 years, 11 months ago)

I appreciate it, you should make a http://www.shroomery.org/forums/features.php with plain links to all of them, ill mail you a dollar -=/


Extras: Filter Print Post Top
InvisibleSenor_Doobie
Snake Pit Champion
 User Gallery


Registered: 08/11/99
Posts: 22,678
Loc: Trump Train
Re: the random thread button. [Re: Ythan]
    #7995335 - 02/08/08 09:05 AM (15 years, 11 months ago)

Thanks for that explanation man!

Its all a lot clearer now.


--------------------
"America: Fuck yeah!" -- Alexthegreat

“Nothing can now be believed which is seen in a newspaper. Truth itself becomes suspicious by being put into that polluted vehicle. The real extent of this state of misinformation is known only to those who are in situations to confront facts within their knowledge with the lies of the day.”  -- Thomas Jefferson

The greatest sin of mankind is ignorance.

The press takes [Trump] literally, but not seriously; his supporters take him seriously, but not literally. --Salena Zeto (9/23/16)


Extras: Filter Print Post Top
Jump to top Pages: < Back | 1 | 2  [ show all ]

Shop: Unfolding Nature Unfolding Nature: Being in the Implicate Order   PhytoExtractum Maeng Da Thai Kratom Leaf Powder   Kraken Kratom Red Vein Kratom


Similar ThreadsPosterViewsRepliesLast post
* Alert button Karen 1,091 2 08/24/01 04:06 PM
by Karen
* ignore button
( 1 2 3 all )
Dobie 6,464 44 09/25/02 09:49 AM
by WhiskeyClone
* Warn The Mods Button shellacct 1,095 4 10/15/01 05:36 PM
by Anonymous
* clicking on posts/threads = no matches eric_the_redS 1,132 4 07/20/03 08:13 PM
by eric_the_red
* thread ratings - waste of space? shirley knott 1,249 5 02/19/03 12:46 AM
by Asante
* That damned escape button! SeussA 1,125 2 09/03/03 06:31 AM
by Seuss
* Rating System v. Thread
( 1 2 3 all )
Joshua 7,925 57 07/05/03 10:42 AM
by Anonymous
* Random Forum! GringoLoco 1,903 6 02/26/02 12:45 AM
by Ulysees

Extra information
You cannot start new topics / You cannot reply to topics
HTML is disabled / BBCode is enabled
Moderator: Ythan, Thor, Seuss, geokills
2,604 topic views. 0 members, 7 guests and 0 web crawlers are browsing this forum.
[ Show Images Only | Sort by Score | Print Topic ]
Search this thread:

Copyright 1997-2024 Mind Media. Some rights reserved.

Generated in 0.023 seconds spending 0.007 seconds on 14 queries.