JaroslavTulach at 09:27, 10 September 2010 - 2010-09-10 09:27:08

←Older revision Revision as of 09:27, 10 September 2010
Line 32: Line 32:
It is just time to get back to the roots. Realize that storing primary data in effective data structures can speed up [[performance]] of the most common operations your system does. Use [[SQL]] as tool to allow complex (but often rare) queries based on data in derived databases just like Sybase's original plan was in the seventies.
It is just time to get back to the roots. Realize that storing primary data in effective data structures can speed up [[performance]] of the most common operations your system does. Use [[SQL]] as tool to allow complex (but often rare) queries based on data in derived databases just like Sybase's original plan was in the seventies.
 +
 +
== External Links ==
 +
 +
* [http://www.slideshare.net/kevinweil/nosql-at-twitter-nosql-eu-2010 No SQL at Twitter]
<comments/>
<comments/>

JaroslavTulach: /* Internet Age */ - 2010-09-01 07:47:43

Internet Age

←Older revision Revision as of 07:47, 1 September 2010
Line 31: Line 31:
The above critique is not meant to say that [[SQL]] is useless. Even the [[bugzilla]] has reporting pages that can query and sort bugs by their status. For such tasks [[SQL]] is more than suitable. So [[SQL]] will not go away.
The above critique is not meant to say that [[SQL]] is useless. Even the [[bugzilla]] has reporting pages that can query and sort bugs by their status. For such tasks [[SQL]] is more than suitable. So [[SQL]] will not go away.
-
It is just time to get back to the roots - e.g. store primary data in effective data structures and use [[SQL]] over derived databases ready for complex, but rare queries.
+
It is just time to get back to the roots. Realize that storing primary data in effective data structures can speed up [[performance]] of the most common operations your system does. Use [[SQL]] as tool to allow complex (but often rare) queries based on data in derived databases just like Sybase's original plan was in the seventies.
<comments/>
<comments/>

JaroslavTulach at 07:07, 1 September 2010 - 2010-09-01 07:07:21

←Older revision Revision as of 07:07, 1 September 2010
Line 34: Line 34:
<comments/>
<comments/>
 +
 +
== [[Talk:SQL|Comments Written so Far]] ==
{{:Talk:SQL}}
{{:Talk:SQL}}

JaroslavTulach: /* Internet Age */ - 2010-09-01 07:05:14

Internet Age

←Older revision Revision as of 07:05, 1 September 2010
Line 23: Line 23:
Basically the whole universe of data spread over various tables (because it is good habit to have [[wikipedia:Database_normalization|normalized database]]) is joined into a giant table. The select then filters tiny piece of such data related to the desired issue.
Basically the whole universe of data spread over various tables (because it is good habit to have [[wikipedia:Database_normalization|normalized database]]) is joined into a giant table. The select then filters tiny piece of such data related to the desired issue.
-
This is complete ''bulldozer'' approach - a form of [[cluelessness]]. Yes, we can use the nice [[SQL]] languages for doing [[wikipedia:relational algebra|relation algebra]], but the [[performance]] completely sucks.
+
This is complete ''bulldozer'' approach - a form of [[cluelessness]]. Yes, we can use nice [[SQL]] language for doing [[wikipedia:relational algebra|relation algebra]], but the [[performance]] completely sucks.
If the details of a single issue were stored in a single file (possibly under a version control system to keep history), it would be enough to read such one file to render the [[HTML]] for the whole issue page.
If the details of a single issue were stored in a single file (possibly under a version control system to keep history), it would be enough to read such one file to render the [[HTML]] for the whole issue page.

JaroslavTulach: /* Internet Age */ - 2010-09-01 07:03:22

Internet Age

←Older revision Revision as of 07:03, 1 September 2010
Line 15: Line 15:
Over the (successful) years many [[good]] practices for empowering [[SQL]] in storing data has been invented. We know how to [[wikipedia:Database_normalization|normalize a database]] so it is suitable for general purpose querying. However, read the previous sentence once again. It says ''general purpose querying''. Do you think that in the internet age we need ''general purpose querying''?
Over the (successful) years many [[good]] practices for empowering [[SQL]] in storing data has been invented. We know how to [[wikipedia:Database_normalization|normalize a database]] so it is suitable for general purpose querying. However, read the previous sentence once again. It says ''general purpose querying''. Do you think that in the internet age we need ''general purpose querying''?
-
Let's look at example of [[Bugzilla]]. [[Bugzilla]] is a bug tracking system backed by an [[SQL]] database. Does it help if the database is [[wikipedia:Database_normalization|normalized]]? No, not in the most common case. The majority of pages displayed by [[Bugzilla]] is showing status of a bug. Such status page includes information about the bug itself, about the list of people interested in it, about a reporter, it shows list of attachments and comments associated with the issue. Do you know what this means in terms of [[SQL]]?
+
Let's look at example of [[Bugzilla]]. [[Bugzilla]] is a bug tracking system backed by an [[SQL]] database. Does it help if the database is [[wikipedia:Database_normalization|normalized]]? No, not in the most common case. The majority of pages displayed by [[Bugzilla]] just show status of a single bug. Such status page includes information about the bug itself, about the list of people interested in it, about a reporter, it shows list of attachments and comments associated with the issue. Do you know what this means in terms of [[SQL]]?
<source lang="sql">
<source lang="sql">

JaroslavTulach: /* Internet Age */ - 2010-08-31 20:29:22

Internet Age

←Older revision Revision as of 20:29, 31 August 2010
Line 21: Line 21:
</source>
</source>
-
Basically the whole universe of data is joined into a giant table and select then filters tiny piece of data associated with the desired issue. The is complete ''bulldozer'' approach - a form of [[cluelessness]]. Yes, we can use the nice [[SQL]] languages for doing [[wikipedia:relational algebra|relation algebra]], but the performance completely sucks.
+
Basically the whole universe of data spread over various tables (because it is good habit to have [[wikipedia:Database_normalization|normalized database]]) is joined into a giant table. The select then filters tiny piece of such data related to the desired issue.
-
If the details of a single issue were stored in a single file (maybe under a version control system), it would be enough to read that one file to display the issue page.
+
This is complete ''bulldozer'' approach - a form of [[cluelessness]]. Yes, we can use the nice [[SQL]] languages for doing [[wikipedia:relational algebra|relation algebra]], but the [[performance]] completely sucks.
-
Somehow over the course of time we have forgotten that [[SQL]] is good for generating reports and started to use it for storing any kind of data. As far as I can tell, those who design heavily loaded websites have already realized that and are seeking for alternatives (like the trivial one file per bug, or [[Lucene]], etc.).
+
If the details of a single issue were stored in a single file (possibly under a version control system to keep history), it would be enough to read such one file to render the [[HTML]] for the whole issue page.
-
The above critique is not meant to say that [[SQL]] is useless. Even the [[bugzilla]] has reporting pages when one can query and sort bugs by their status. For such tasks [[SQL]] is more than suitable. Maybe it is time to get back to the roots - e.g. store primary data in effective data structures and use feed the [[SQL]] with derived data ready for complex, and rare queries.
+
Somehow over the course of time we have forgotten that [[SQL]] is good for generating reports and started to use it for storing any kind of data. As far as I can tell, those who design heavily loaded websites have already realized that and are seeking for alternatives (like the trivial one file per bug, or [[Lucene]], etc.). It is clear that effective web sites need something else than ''SELECT'' over all tables per each page request.
 +
 
 +
The above critique is not meant to say that [[SQL]] is useless. Even the [[bugzilla]] has reporting pages that can query and sort bugs by their status. For such tasks [[SQL]] is more than suitable. So [[SQL]] will not go away.
 +
 
 +
It is just time to get back to the roots - e.g. store primary data in effective data structures and use [[SQL]] over derived databases ready for complex, but rare queries.
<comments/>
<comments/>
{{:Talk:SQL}}
{{:Talk:SQL}}

JaroslavTulach: /* Internet Age */ - 2010-08-31 20:25:02

Internet Age

←Older revision Revision as of 20:25, 31 August 2010
Line 15: Line 15:
Over the (successful) years many [[good]] practices for empowering [[SQL]] in storing data has been invented. We know how to [[wikipedia:Database_normalization|normalize a database]] so it is suitable for general purpose querying. However, read the previous sentence once again. It says ''general purpose querying''. Do you think that in the internet age we need ''general purpose querying''?
Over the (successful) years many [[good]] practices for empowering [[SQL]] in storing data has been invented. We know how to [[wikipedia:Database_normalization|normalize a database]] so it is suitable for general purpose querying. However, read the previous sentence once again. It says ''general purpose querying''. Do you think that in the internet age we need ''general purpose querying''?
-
Let's look at example of [[Bugzilla]]. [[Bugzilla]] is a bug tracking system backed by an [[SQL]] database. Does it help if the database is [[wikipedia:Database_normalization|normalized]]? No, not in the most common case. The majority of pages displayed by [[Bugzilla]] is showing status of a bug. Such status page includes informations about the bug itself, about the list of people interested in it, about a reporter, it shows list of attachments and comments associated with the issue. Do you know what this means in terms of [[SQL]]?
+
Let's look at example of [[Bugzilla]]. [[Bugzilla]] is a bug tracking system backed by an [[SQL]] database. Does it help if the database is [[wikipedia:Database_normalization|normalized]]? No, not in the most common case. The majority of pages displayed by [[Bugzilla]] is showing status of a bug. Such status page includes information about the bug itself, about the list of people interested in it, about a reporter, it shows list of attachments and comments associated with the issue. Do you know what this means in terms of [[SQL]]?
<source lang="sql">
<source lang="sql">

JaroslavTulach: /* Internet Age */ - 2010-08-31 20:17:06

Internet Age

←Older revision Revision as of 20:17, 31 August 2010
Line 15: Line 15:
Over the (successful) years many [[good]] practices for empowering [[SQL]] in storing data has been invented. We know how to [[wikipedia:Database_normalization|normalize a database]] so it is suitable for general purpose querying. However, read the previous sentence once again. It says ''general purpose querying''. Do you think that in the internet age we need ''general purpose querying''?
Over the (successful) years many [[good]] practices for empowering [[SQL]] in storing data has been invented. We know how to [[wikipedia:Database_normalization|normalize a database]] so it is suitable for general purpose querying. However, read the previous sentence once again. It says ''general purpose querying''. Do you think that in the internet age we need ''general purpose querying''?
-
Let's look at example of [[Bugzilla]]. [[Bugzilla]] is a bug tracking system backed by an [[SQL]] database. Does it help if the database is [[wikipedia:Database_normalization|normalized]]? No, not in the most common cases.
+
Let's look at example of [[Bugzilla]]. [[Bugzilla]] is a bug tracking system backed by an [[SQL]] database. Does it help if the database is [[wikipedia:Database_normalization|normalized]]? No, not in the most common case. The majority of pages displayed by [[Bugzilla]] is showing status of a bug. Such status page includes informations about the bug itself, about the list of people interested in it, about a reporter, it shows list of attachments and comments associated with the issue. Do you know what this means in terms of [[SQL]]?
-
...
+
<source lang="sql">
 +
SELECT few_lines FROM ISSUES, PEOPLE, COMMENTS, ATTACHEMENTS;
 +
</source>
-
[[TBD]]: Why [[SQL]] is not well suited for the internet age...
+
Basically the whole universe of data is joined into a giant table and select then filters tiny piece of data associated with the desired issue. The is complete ''bulldozer'' approach - a form of [[cluelessness]]. Yes, we can use the nice [[SQL]] languages for doing [[wikipedia:relational algebra|relation algebra]], but the performance completely sucks.
 +
 
 +
If the details of a single issue were stored in a single file (maybe under a version control system), it would be enough to read that one file to display the issue page.
 +
 
 +
Somehow over the course of time we have forgotten that [[SQL]] is good for generating reports and started to use it for storing any kind of data. As far as I can tell, those who design heavily loaded websites have already realized that and are seeking for alternatives (like the trivial one file per bug, or [[Lucene]], etc.).
 +
 
 +
The above critique is not meant to say that [[SQL]] is useless. Even the [[bugzilla]] has reporting pages when one can query and sort bugs by their status. For such tasks [[SQL]] is more than suitable. Maybe it is time to get back to the roots - e.g. store primary data in effective data structures and use feed the [[SQL]] with derived data ready for complex, and rare queries.
<comments/>
<comments/>
{{:Talk:SQL}}
{{:Talk:SQL}}

JaroslavTulach: /* Internet Age */ - 2010-08-31 19:07:01

Internet Age

←Older revision Revision as of 19:07, 31 August 2010
Line 12: Line 12:
== Internet Age ==
== Internet Age ==
 +
 +
Over the (successful) years many [[good]] practices for empowering [[SQL]] in storing data has been invented. We know how to [[wikipedia:Database_normalization|normalize a database]] so it is suitable for general purpose querying. However, read the previous sentence once again. It says ''general purpose querying''. Do you think that in the internet age we need ''general purpose querying''?
 +
 +
Let's look at example of [[Bugzilla]]. [[Bugzilla]] is a bug tracking system backed by an [[SQL]] database. Does it help if the database is [[wikipedia:Database_normalization|normalized]]? No, not in the most common cases.
 +
 +
...
[[TBD]]: Why [[SQL]] is not well suited for the internet age...
[[TBD]]: Why [[SQL]] is not well suited for the internet age...

JaroslavTulach: /* Internet Age */ - 2010-08-23 19:02:40

Internet Age

←Older revision Revision as of 19:02, 23 August 2010
Line 17: Line 17:
<comments/>
<comments/>
-
[[Talk:SQL]]
+
{{:Talk:SQL}}