PostgreSQL 8.3 Released
jadavis writes "The release of the long-awaited PostgreSQL version 8.3 has been announced. The new feature list includes HOT, which dramatically improves performance for databases with high update activity; asynchronous commit; built-in full text search; large database features such as synchronized scans and reduced storage overhead; built-in SQL/XML support; spread checkpoints; and many more (too many major new features to list here). See the release notes for full details."
Would that be POSTGR~1.SQL?
Like MySQL?
Fast is all that matters, you know.
I will probably wait for a while before I update but this looks great.
HOT and the full text search are two features that I could use.
Postgres is a good reliable database server. I just wish more projects supported it as an equal to MySQL.
See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
The one thing that has stopped me from picking up Postgresql yet is that I can't do cross database joins on the same server. Should a user have the same permissions on two separate databases on the same server, a properly constructed query should be able to join across multiple DB's but they still don't implement this yet that I am aware of.
This is my sig. There are many like it but this one is mine.
muthafuckas 1st post
I'm a postgresql fan, I've considered it a superior database for years.
However, it seems every client I come into contact with (I am a freelance software designer) seems to believe mysql is the only open source database available and certainly the best one for all jobs.
Mysql is great (or at least, was great) for fast connection times and speed but for a stable, feature-rich excellent database, postgresql has always been ideal.
It's just a shame no one seems to be aware of it.
someone will make a comment regarding how sad the story of Postgres's popularity is, and how they've seen German folk music with more of a following.
this was a new feature for Oracle with 10g R2 also - and as a DBA I can only shake my head and ask "why?" Why would you want to drop the durability part of ACID? Why would you risk losing data for speed? There are so many ways to tune things and speed things up without taking such drastic measures. I know I'd fight tooth & nail before I'd turn this on in anything I managed. I just hate to think that someone with less understanding is going to think of it as a 'go-faster' button and then blame postgres when they lose something important.
It's hard to believe that's how Micronians are made. Why don't we see it right now by having you both kiss one another?
forever.
would have been nice. It certainly needs a better solution if they want to chase serious enterprise customers. A couple of years ago I was on a project with geographically dispersed sites and the client was determined to use Postgres. All I remember from that project was that the replication was a PIA. We had to rig up a complicated fail-over system in lieu of multi-master replication. Not at all elegant.
Postgres 9 maybe?
As far as databases go I don't think it gets much better than Postgres and I reckon over the years I've tried most popular databases. What I really don't understand though is why Postgres doesn't own more of the database market. Sure it was a bit slower than MySQL a few years ago but the benifits that you reaped for that slightly slower speed far outweighed the cost. The difference know is, I would say, much small and less significant.
I can only assume that MySQL keeps it's large market share because it has commercial backing and therefore good support. I'm sure there are plenty of products taht don't require that level of support though.
I used to have a better sig but it broke.
I suppose they've figured out how to only make it an order of magnitude slower than MySQL.
There are so many Open Source databases (MySQL, MaxDB the last GPL version, Firebird, Postgresql, Ingres Community Edition, hsqldb and H2) that it is hard to know which ones implement what, which ones are useful for what, or which ones are optimal for what. Simple benchmarks (a) rarely are, and (b) usually want to promote one specific product over another. There are standardized tests, for a small fortune and by a relatively closed group who probably don't have a fraction of the range of experiences of databases in the real world, so cannot possibly be trusted to authenticate a standard or measure that could be used to compare databases.
We could really do with some serious side-by-side evaluations of these database engines, or at least decide what such evaluations would need to be to be actually useful. (Hey, maybe CmdrTaco can add a comparison section, get it sponsored by Which? or some other consumer guide, and have some of us run evaluations. It'd have to be done well to not be flamebait, which I think might rule me out, but if it could be done, it would be hellishly useful.)
It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
Are you thinking like you'd do in SQL server (IIRC) or MySQL, where you have a db reference in the table list (i.e., SELECT * from db1.table1, db2.table2 WHERE [join clause])?
you'd probably just want to use a schema for that; the concept maps more or less the same way.
Asynchronous commit is very useful in applications where the thing that's important about the data is its statistical distribution, and not the individual data points per se.
This is bunk, man.. postgres servers were already overpowered, why make them that much harder to kill?
So the ink barely dries on the press release for Sun's acquisition of MySQL and we're already posting minor (!) revision releases for PostgreSQL on the front page? Didn't waste much time abandoning ship, did ya?
Ok, so first you say:
Which is fine, as far as it goes, I guess. If you don't need it, then it doesn't serve a purpose for you.
See, but whereas before you were complaining about how schemas add an unnecessary layer of complexity, now you like to (entirely needlessly, from the description you give) add a whole lot of complexity by throwing in queries across database instances that you don't need yet?
So, do you not like unnecessary complexity, or do you just prefer adding really stupid forms of unnecessary complexity?
"A dump/restore using pg_dump is required for those wishing to migrate data from any previous release"
Postgres have a habit of making you do this to upgrade and it really sucks. I understand the reasons behind it, but that does not reduce the amount of suck, especially for a large database.
Does anyone know of a good, semi-recently written book on PostgreSQL? Everything I find is from at least 3 years ago. Is it that PostgreSQL hasn't changed much, barring this release, in the past few years?
\033:wq!
Just recently, I discovered that Ferret had synchronization problems when I deployed my my http://cookingspace.com/ site using nginx and a mongrel cluster - a little nuisance to work around. I did some fast experimenting with indexing and search using MySQL and PostgreSQL, and I made a note to retry PostgeSQL when version 8.3 was released.
When a deployment platform has inherent weaknesses (like Rails!), it is important to be able to shove off as much processing as possible to more industrial strength tools like memcached and (choose a) relational database.
Fast
And
Sorta
Transactional
PostgreSQL is
Fast
And
Really
Transactional
And under heavy loads with normalized db's PostgreSQL's planner does *much* better than MySQL's.
LedgerSMB: Open source Accounting/ERP
I have used PostgreSQL as my primary db since 2000 (version 6.5!) and I have watched it for a while.
PostgreSQL had a number of problems in the past which made it hard to work with including:
1) No ALTER TABLE DROP COLUMN support and other things needed for prototyping (fixed in 7.2 iirc)
2) Issues with dependency tracking in text SQL dumps (fixed in 8.0) meaning that some times one had to hack dumps to get them to restore properly.
3) maintenance tasks required exclusive locks on tables (corrected sometime in 7.x)
4) other things which generally made it somewhat user-unfriendly.
Note that all of the above issues have been corrected as of three years ago. However by that point a lot of the small less serious appliations were more or less wedded to MySQL. For large, shared databanks, PostgreSQL and Ingress II (and maybe Firebird) are the only serious choices. MySQL fails to be useful as soon as you end up requiring the sort of thing described in the title of Codd's original paper....
LedgerSMB: Open source Accounting/ERP
If PostgreSQL changed their name to OurSQL it would be easy to remember, and a sound a lot less selfish than MySQL.
This issue is a bit more complicated than you think.
Agreed. It's more difficult to sell when it has a name that is hard to pronounce.
Why do open source software authors give their projects self-defeating names?
Another example: GIMP which means:
gimp -- noun -- disability of walking due to crippling of the legs or feet
Not too smart to give your project a name that means "cripple".
I agree with the other comment, change the name to OurSQL, EasySQL, or ProSQL. I like the last, ProSQL. (All those others are for amateurs.)
I got the message. I just haven't gotten around to reading it yet.
than on MySQL.
On MySQL, a "database" is really what we call a "schema" on PostgreSQL (note that the "information schema" in MySQL is a separate db!).
So, you have that option built in within PostgreSQL. However, there is more.
Suppose I want to query data on another server? MySQL allows this through "FEDERATED" tables. PostgreSQL allows this through dblink.
However, there is a better tool out there. DBI-Link by David Fetter is a partial implementation of SQL/MED using Perl/DBI. So you can actually query data on a MySQL db from inside PostgreSQL.
You can't do cross-db joins because you haven't spent the time to lean and never understood that MySQL uses subtly different terminology.
LedgerSMB: Open source Accounting/ERP
The basic thing is-- PostgreSQL's default installation is either a starting point or a development setup. Setting it up for a production environment is completely different. You might want to have users authentiate via some central source, as system accounts, or something else. That is where the advanced documentation comes in.
Now, this has a good side: flexibility. One of the reason why we on the LedgerSMB project use the role system for application users is that it allows for external auth systems (LDAP, Kerberos, etc). 8.3 expands on these as well.
Now, it is not all good though. 8.3 by removing all the implicit casts breaks LedgerSMB so while we *will* fix problems reported to us, we will not guarantee that it will do much out of the box....
LedgerSMB: Open source Accounting/ERP
From your link:
MySQL began development with a focus on speed while PostgreSQL began development with a focus on features and standards.
MySQL's MyISAM engine performs faster than PostgreSQL, but at the cost of transactions, data safety, and various constraints.
PostgreSQL, on the other hand, provides features, such as partial indexing, that can lead to faster performance on certain queries.
PostgreSQL is also better in the sack.
I didn't correct the wiki because I thought it was hilarious and probably true.
Cool! Amazing Toys.
Ok, so I've decided to give postgres a try. Took me a half hour just to figure out that I needed to create a cluster. So now I can actually connect to the postgres server. Ok, so I want to create my first table. What do you know, the postgres docs don't even give enough information on data types to be able to know what the different integer types are, and wtf are int2, int4, int8? You call 10 sentences on ints documentation?
You know why postgres isn't widely used? Because a newcomer can't even fcuking find out how to declare an unsigned int column, if they are even possible! The docs suck, and googling for tutorials doesn't turn up squat. No wonder I once installed mysql and postgres side-by-side, and had scrapped postgres within the first couple hours. Can't figure anything out.
seriously? you're reading slashdot and you cant understand what the differences are between the ints are even after reading the documentation?
-- $_='ab-bc ratvarre';tr"'a-z'"'n-za-m'";print
Hi, I read that "MySQL does not uses several CPUs to execute single query - only multiple connections may benefit from several CPUs.". That was written January 6 2004 by Peter Zaitsev, then a full-time developer at MySQL AB, www.mysql.com. I found the quote at http://lists.mysql.com/benchmarks/45
Does anyone know if PostgreSQL supports a dual or quad CPU when it comes to executing a single query, or if MySQL now supports it?
The reason I ask is that I have a database with tens of millions of records and even 'simple' queries take a long time. Would it be beneficial to buy a 8 core machine, i.e. dual quad, over a single quad cpu?
Thanks for any tips or links!
Yeah I know, it's planned in 8.4 and there are currently hacks to do this in Postgres. But it's ironic that "The world's most advanced open source database" still does not have this feature, which according to relational theory, is pretty crucial. While the toy database which everybody loves to flame, Access, has had this for what, centuries?
I'm a great fan of postgres but I ran into an irritating limitation recently; I replicate a database over a large number of very small nodes using slony. I really don't care about the integrity of the slaves - they're read-only to their clients and should I suspect they're corrupt I just reboot (they live in memory and the OS lives on a 1 Gb read-only flash drive). But postgres insists on having a WAL directory (pg_xlog) with chunks of 16MB in it. And that's big if you live in 128MB of ramdisk, and you can't turn that off. I mean, from my reasoning - the WAL isn't really used unless you do recovery; the versions of the data are in the db itself (otherwise we wouldn't need vacuum, now would we ?) So why can't I just configure postgres to not use WAL ? And then if the db is corrupt we just die. No, say the guys on IRC, you just have to recompile it with its hard-defined value of 16MB down to something lower. Yeah right. I'm not interested in hacks - I want a versatile RDBMS.
Religion is what happens when nature strikes and groupthink goes wrong.
Yeah I know it's planned to be in 8.4 and there are hacks to do it in the current version. But it's ironic that "the world's most advanced open source database" doesn't have this feature, which is supposedly pretty basic and crucial in a relational database system. While the "toy" database that everybody loves to hate, Access, has had this for what, centuries?
Thanks! From the post (dated 31 Oct 2007) in the link you provided:
"> Are queries spread across multiple processors?"
"No, not a single query. Max one CPU per query."
Thats is sad, even if not unexpected.
Now, even standard operations take a lot of time, and I have the only connection... Yes, it is a single user setup, without any website traffic.
-
Like it or not, this sort of thing is remarkably common. Pretty soon you have numerous applications designed with their own databases and someone needs information aggregating it all together. The SQL 2003 standard actually has an optional module dealing with this problem. It is called SQL/MED (Management of External Data) and it exists specifically to address management of data outside the database. One of the major limitations however is that the database cannot guarantee ACID compliance in the same way when it does not manage all aspects of the data.
In MySQL, this is done using Federated tables, but they are limited to those on MySQL servers. I.e. one cannot query Oracle from MySQL, etc.
In PostgreSQL, there is a partial implementation of SQL/MED written in PL/PerlU by David Fetter called DBI-Link. It allows you to access any data you can from Perl's DBI infrastructure as views in PostgreSQL. This means you can query data on other PostgreSQL servers, but also data on servers running MySQL, MS SQL, Oracle, DB2, LDAP, and all sorts of other things as well (note that LDAP isn't even relational in its model).
LedgerSMB: Open source Accounting/ERP
One of the issues with this discussion is that there is a disjunct in the terminology used by MySQL users and that used by the rest of us.
:-)
MySQL uses "database" and "schema" synomymously (note that their "information schema" is a separate "database"). In that sense, PostgreSQL has long had cross-schema joins in the same way MySQL does. It is just slightly harder to set things up so that you create tables in the right schemas. (hint: SET search_path='schema_name');
In this way, I do a *lot* of work using cross-schema queries. They work like a charm on PostgreSQL.
What PostgreSQL calls a "database" is analogous to the entire cluster of "databases" on MySQL. There is no analogy to "PostgreSQL cluster" on MySQL (i.e. a set of databases controlled by the same process, each of which contains multiple schemata). For that matter, last time I checked, there was no equivalent on Oracle either.
So "PostgreSQL doesn't have an equivalent to MySQL's cross-db queries" is an issue of terminology rather than substance.
At the same time, as nconway points out, PostgreSQL's MED solutions do not optimize well across distributed queries (i.e. where parts of the queries have to go through connections to other databases/servers). For MySQL users, these are like Federated tables, and I would expect similar (or worse) optimization problems in this area on MySQL. Hence when you are trying to use PostgreSQL as a distributed database, you are in for headaches. Fortunately this is not what the OP asked for
LedgerSMB: Open source Accounting/ERP
Can we infer from this that PostgreSQL developers will show evidence of love bytes?
It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
i am useing mysql because i love mysql ! dizi izle