Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Communicate ...
Connect ...
Share ...
Play ...
Trade ...
craigslist
Copyright MySQL AB
WEB 2.0
1990
2000
1995
Copyright MySQL AB
2005
The Worlds Most Popular Open Source Database
lower tco
full-text search
world-wide
community
lamp
ease of use
interoperable
open source
replication
partitioning (5.1)
large objects
tag databases
XML
language support
performance
connectors
reliability
bundled
session management
Copyright MySQL AB
scale out
query cache
Agenda
Copyright MySQL AB
Copyright MySQL AB
Copyright MySQL AB
Copyright MySQL AB
User-driven data
Tracked pages/items
Allows interlinking of content via the user to user relationship
(folksonomy)
10
Copyright MySQL AB
11
Entirely denormalized
One main fact table with one field storing delimited list of tags
Unless using FULLTEXT indexing, does not scale well at all
Very inflexible
Scuttle solution
Two tables. Lookup one-way from item table to tag table
Somewhat inflexible
Doesn't represent a many-to-many relationship correctly
Toxi solution
Almost gets it right, except uses surrogate keys in mapping
tables ...
Flexible, normalized approach
Closest to our recommended architecture ...
Copyright MySQL AB
12
Copyright MySQL AB
13
Copyright MySQL AB
14
Copyright MySQL AB
15
Copyright MySQL AB
16
17
SELECTp2.post_id
FROMTag2Postp1
INNERJOINTag2Postp2
ONp1.tag_id=p2.tag_id
WHEREp1.post_id=6
GROUPBYp2.post_id;
Copyright MySQL AB
18
19
Copyright MySQL AB
20
Copyright MySQL AB
21
Copyright MySQL AB
22
Copyright MySQL AB
23
24
Copyright MySQL AB
25
Copyright MySQL AB
26
Here we see
tagging and
folksonomy
together: the user
dimension...
Copyright MySQL AB
27
Copyright MySQL AB
28
SELECTuser_id
FROMUserTagPost
WHEREpost_id=@my_post_id;
Copyright MySQL AB
29
Copyright MySQL AB
30
SELECTothers.user_id
FROMUserTagPostothers
INNERJOIN(SELECTtag_id
FROMUserTagPost
WHEREuser_id=@my_user_id
GROUPBYtag_id
HAVINGCOUNT(tag_id)>=@radius)ASmy_tags
ONothers.tag_id=my_tags.tag_id
GROUPBYothers.user_id;
Copyright MySQL AB
31
32
Copyright MySQL AB
33
Copyright MySQL AB
34
Copyright MySQL AB
35
Web/App
Server
Web/App
Server
Load Balancer
Reads
Master
MySQL
Server
Slave
MySQL
Server
Reads
Slave
MySQL
Server
Replication
Copyright MySQL AB
36
Copyright MySQL AB
37
38
Copyright MySQL AB
39
Questions?
MySQL Forge
http://forge.mysql.com/
MySQL Forge Tag Schema Wiki pages
http://forge.mysql.com/wiki/TagSchema
PlanetMySQL
http://www.planetmysql.org
Jay Pipes
(jay@mysql.com)
MySQL AB
Copyright MySQL AB
40