It would probably run a lot faster if you had a view and separate indexes on 
the two uid columns. I haven't got access to my MySQL at the moment, so i can't 
check the syntax for creating a view but you should be able to find that 
yourself. Something like:

CREATE VIEW friendshipview AS (<the union select statement>)

Creating separate indexes on the columns used in the select statements should 
speed things up quite a bit, an index should speed up by a factor of 10^2 or 3. 
If you have a very active database you might also consider rebuilding the index 
regularly, with OPTIMIZE TABLE <table name>.

-----Oprindelig meddelelse-----
Fra: [email protected] 
[mailto:[email protected]] På vegne af Fresh Mix
Sendt: 22. december 2011 21:33
Til: [email protected]
Emne: [Rails] Re: SV: Simple friendship table

Brynjolfur Thorvardsson wrote in post #1037658:

> (SELECT uid2 AS uid, status FROM friendships WHERE uid1 = 1) UNION
> (SELECT uid1,status FROM friendships WHERE uid2 = 1)

It works fine, but it is slow :(

Only one entry per friendship (1 500 000 rows in database)

SELECT with UNION: 1.2108 sek

Dublicate entryes ( total 3 000 000 rows in database)

SELECT without UNION: 0.0007 sek

--
Posted via http://www.ruby-forum.com/.

--
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.



-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to