5 ms·
DBMS Comparison
- frik 12y agoThe idea is good, but without database software versions and links to sources, a bit useless. MySQL supports several database engines, the former default engine was ISAM (now outdated), the newer default engine is InnoDB. Such a comparison table would fit to Wikipedia.
- thorin 12y agoI also like the idea, however a quick perusal of Oracle (which I know best - I know the others a little, especially SQLServer) would suggest that at least 50% of the "nos" can be done or have an easy workaround. So it's good from an overview perspective but not really a definitive guide. Agree on the comment above re: versions.
- Alupis 12y agoAnd I believe there are features MariaDB 10.x supports that MySQL 5.x does not... this comparison seems to lump both MySQL and MariaDB together (or excludes MariaDB?).
- SloopJon 12y agoIt makes complete sense to me that the maintainer of a multi-DB tool would collect a table of features like this. My impression is that SQL Workbench/J does not try to hide differences between database systems. The fact that a cell in the table is red is a heads up that the straightforward way won't necessarily work out of the box. There are notes for some of the cells like "since 3.8.3" and "MariaDB 10.1 supports ...". If you have more specific information, I'm sure the author would be happy to get an email.
- frik 12y agoThe notes aren't accessible on touch devices like iPad.
- Sapient 12y agoWow, Im pretty shocked at how many more features Postgres has over MySQL. I always just though of Postgres as 'a bit better, but not really worth the effort', I will definitely have to try it again.
- xtrumanx 12y agoI knew my constant browsing of HN would pay off one day. I didn't even know filtered aggregates were a thing and solved a problem I was having just by discovering it. Thanks for the submission neverminder.
- jbigelow76 12y agoCan you explain the difference between a filtered aggregate and an aggregate on a result set that has been limited by a WHERE clause? It's difficult to tell the difference from the annotation on the comparison table.
- xtrumanx 12y agoWell here's how I used it. My query was joining two tables with a left join and I was using the array_agg aggregate function (which aggregates a series of rows into a single array) on a record on the right table. Since the right table could be have rows that were all null I was getting aggregation of null values sometimes which I didn't want. I didn't want to skips rows with null values (which is why I used a left join) since I needed the values of the left table always and thus had a conundrum. With the filtered aggregation, I could tell PostgreSQL to not aggregate the null values. Here's the results of my query before and after using the filtered aggregate. Before: {"name":"asd","id":2,"pages":[{"id":null,"data":null,"siteid":null}]} After: {"name":"asd","id":2,"pages":null}
- buckbova 12y agoFor SQL Server, you can use dynamic sql in triggers.
- sarciszewski 12y agoPostgreSQL also has materialized views that can be refreshed concurrently. Neither were present on this chart.