×
  • Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
 

Sql Antipatterns Strike Back

by on Apr 21, 2009

  • 92,237 views

Common blunders of SQL database design, queries, and software development. Presented as a tutorial at the MySQL Conference & Expo 2009.

Common blunders of SQL database design, queries, and software development. Presented as a tutorial at the MySQL Conference & Expo 2009.

Statistics

Views

Total Views
92,237
Views on SlideShare
82,243
Embed Views
9,994

Actions

Likes
201
Downloads
2,599
Comments
26

127 Embeds 9,994

http://www.cs.vsb.cz 2692
http://jdobbie.blogspot.com 1969
http://www.it4business.ru 495
http://www.mauromeloni.com.ar 408
http://bitnegro.blogspot.com.es 351
http://pwfisher.com 349
http://www.graph-database.org 330
http://www.coderholic.com 330
http://blog.meta.ua 309
http://kupreev.com 281
http://moskalyuk.name 234
http://tiniknik.blogspot.com 158
http://www.slideshare.net 144
http://bitnegro.blogspot.com.ar 135
http://www.stetsenko.net 107
http://jdobbie.blogspot.ru 83
http://jdobbie.blogspot.co.uk 79
http://jdobbie.blogspot.de 69
http://jayant7k.blogspot.com 60
http://blog.klaushofeditz.de 55
http://jdobbie.blogspot.in 54
http://jdobbie.blogspot.fr 52
http://edit.optimizely.com 51
http://www2.cs.vsb.cz 51
http://www.kupreev.com 48
http://tiniknik.blogspot.ru 45
http://jdobbie.blogspot.ca 44
http://bitnegro.blogspot.com 43
http://lj-toys.com 41
http://www.blinkoftheday.com 40
http://it4business.ru 40
http://jdobbie.blogspot.it 37
http://jdobbie.blogspot.fi 35
http://khishigee.miniih.com 34
http://rubyrailsandwindows.blogspot.com 33
http://l.lj-toys.com 32
http://jdobbie.blogspot.nl 31
http://www.khishigee.miniih.com 31
http://jdobbie.blogspot.sg 29
http://jdobbie.blogspot.com.au 26
http://confluence.mdtest.info 26
http://85.32.121.170 24
http://bitnegro.blogspot.mx 24
http://jdobbie.blogspot.cz 24
http://jayant7k.blogspot.ru 22
http://localhost 20
https://twitter.com 20
http://jdobbie.blogspot.kr 19
http://www.pwfisher.com 16
http://jayantkumar.in 15
More...

Accessibility

Upload Details

Uploaded via SlideShare as Adobe PDF

Usage Rights

CC Attribution-NonCommercial-NoDerivs LicenseCC Attribution-NonCommercial-NoDerivs LicenseCC Attribution-NonCommercial-NoDerivs License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

110 of 26 previous next Post a comment

  • billkarwin Karwin Software Solutions LLC at Karwin Software Solutions LLC Thanks @Itay, yes you're right. Clearly, as in any other application, the queries you need to run determine the choice of indexes. 11 months ago
    Are you sure you want to
    Your message goes here
    Processing…
  • iyahimovitz Itay Yahimovitz, Senior Software Engineer at eBay Very nice article, One thing I noticed you're primary key is on the (ancestor, descendant)
    You're closure table should also have an index on the 'descendant', if you don't have that index your queries to find the ancestors will be really slow and I believe you said in the presentation that queries to get the ancestors will be fast.
    11 months ago
    Are you sure you want to
    Your message goes here
    Processing…
  • MySQLGeek Justin Swanhart, Principal Support Engineer at Percona They will be supported by Shard-Query for MySQL soon though. And then window functions :) 1 year ago
    Are you sure you want to
    Your message goes here
    Processing…
  • anotherjohndoe anotherjohndoe As far as I can tell, it's more DBMS supporting CTE than not. SQLite and MySQL and Apache Derby do not support them. Teradata, Sybase, NuoDB, Vertica, HSQLD, H2, and Firebird are supporting them. It's definitely mainstream nowadays - and not having them is a major deficiency (just like other modern SQL features like windowing functions, indexes based on expressions, check constraints or deferrable constraints). 1 year ago
    Are you sure you want to
    Your message goes here
    Processing…
  • billkarwin Karwin Software Solutions LLC at Karwin Software Solutions LLC @anotherjohndoe Recursive CTE's are supported by Oracle, Microsoft, IBM DB2, and PostgreSQL. Perhaps a couple of others. Recursive CTE's are not supported by MySQL, SQLite, and most other databases. 1 year ago
    Are you sure you want to
    Your message goes here
    Processing…
  • anotherjohndoe anotherjohndoe Slide 77 (Trees): Querying a sub-tree using the adjacency list model is very easy when using recursive queries ('common table expression) which nearly all modern DBMS support nowadays. 1 year ago
    Are you sure you want to
    Your message goes here
    Processing…
  • toddschoen toddschoen adjacency list is ok if you need to do multi-parented imho, you can go to unlimited depth, it may require lots of joins so could be a performance killer with large datasets (or datasets that cannot be narrowed down before hand)
    http://www.artfulsoftware.com/mysqlbook/sampler/mysqled1ch20.html
    a slightly modified version of listing2 would do the trick
    1 year ago
    Are you sure you want to
    Your message goes here
    Processing…
  • akretschmer akretschmer @md2perpe LOL, yeah, you are right ;-) 1 year ago
    Are you sure you want to
    Your message goes here
    Processing…
  • md2perpe Per Persson, Developer at Ztorm AB @akretschmer There's a lot of crappy things that's still widely used, because of popularity, lack of alternatives or lack of knowledge about alternatives. Three examples: Internet Explorer, imperial units, and Budweiser beer. 1 year ago
    Are you sure you want to
    Your message goes here
    Processing…
  • akretschmer akretschmer @md2perpe really? crappy database, isn't it? 1 year ago
    Are you sure you want to
    Your message goes here
    Processing…

110 of 26 previous next

Post Comment
Edit your comment

Sql Antipatterns Strike Back Sql Antipatterns Strike Back Presentation Transcript