Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I like all the talk surrounding Postgresql recently, does anyone have any experience with moving from MSSQL to Postgresql?

I am not asking if one is better than the other because it depends what I am using it for but what about performance / reliability?



> what about performance / reliability?

Postgres has very good reliability (for the longest time, reliability and completeness were the only two driving goals of the project). It also has acceptable-to-good performances (on unices anyway) but the default configuration is completely untuned.

This default is meant to run on very weak machines, so the db "works" everywhere OOTB, many people don't configure their postgres (and it's not been trivial historically, it's gotten a lot better) and end up with miserable performances.

This issue is most visible with "the other open-source database" (MySQL) as it has 1. a much more aggressive default configuration and 2. MyISAM default (I think it might have been switched now, but that's pretty recent), which has very fast reads (and nothing else)

An other issue with postgres is probably the lack of postgres DBAs (let alone good ones) compared to Oracle and MSSQL, though any good and open-minded DBA should be able to get up-to-speed quick on it. The last issue would be tooling, I believe MS provides lots of administration and GUI tools for MSSQL, there's a dearth of those for postgres.


There's a fair number of really good Postgres tools out there, or tools that support Postgres among other platforms, They're just pricey. The free tools are passable but not that good.


For me personally PostgreSQL makes up for the lack of good free graphical tools by providing an excellent command line client, psql, and good utility views and functions. I much prefer it to the CLIs of MySQL, Oracle and SQLite.


I do not have experience with MSSQL, but I have been using PostgreSQL since 5 years ago.

It's a really reliable database, more reliable than MySQL. It has all the features you expect a real RDBMS to have.

It has good performance too. There's this myth going around, with people saying that it doesn't have good performance. However it is just a myth, started because the default configuration is optimized for poor servers without much memory. Make sure to optimize your configuration (i.e. specifying how much memory can PostgreSQL use for certain tasks - you can find guides for that online).


I used MSSQL up to MSSQL 2005 and MySQL up until about the same time. Around then I switched over to PostgreSQL completely and have not had a reason to go back. My biggest complaints had to do with simple replication and that was mostly solved in Postgres 9.0. Postgres is a damn fine database.


Well I am quite honestly bored of paying £240 a month per cpu licensing costs.

I have no objections for paying for licenses but it's just getting too much. They put their costs up recently from £180 a month to £240, when we tried to pass that onto a client they pulled their face, it's getting hard to justify the cost of running a web server on a Microsoft platform


Such comparisons are often difficult since MySQL and Postgres typical perform significantly better on Unix based systems than they do on Windows. Also using the Windows/.NET libraries for connections tend to perform worse even if the database server itself is hosted a Unix box.

In general, I would say you should stay on MSSQL if your server environments are Windows and only look at the OSS alternatives if you're willing (and able) to make a full stack switch to Unix.


At the company I work for we are currently in the process of migrating from MSSQL to PostgreSQL. However, we are trickling to a full stack switch to Linux. In the meantime, the Postgres databases have performed extremely well and on balance we are happy with it.

Unfortunately I would argue that at an enterprise level MSSQL is better than Postgres (pure conjecture here). If nothing else, it is way easier to employ MSSQL experts where I live and next to impossible to find Postgres talent. This pretty much means that we are learning by trial and error what the best practices are.


Great to hear that your company is forward thinking and willing to make the considerable investment to get off the MS Stack.

You might have more luck finding some Oracle DBAs and training them up on PostGres. There's a lot of similarities between the two, and PG/SQL is also very similar to PL/SQL.


If you need remote Postgres talent, go to the source: www.EnterpriseDB.com


Actually, there's quite a few companies that offer professional PG support, there's a list on the official PostgreSQL page:

http://www.postgresql.org/support/professional_support/


Well we do currently use .net but I asked a question the other week on here about different languages etc and one good piece of advice I got was to create a REST service and interact with that.

We have put a lot of thought into it and we were going to give it a go with WCF and REST but I don't see any issue why we cannot buy a UNIX box and put Postgresql on it and put a layer on it with some other language serving the REST?

I will be benchmarking this with a current customer who has over 1 million products and a lot of visitors a day to see how it stands up against MSSQL, we are quite sensible into not jumping into decisions so I appreciate your comment and it shall definitely be part of the benchmark.


Having spent the better part of 3 years creating REST services with .NET, I strongly recommend you do NOT use traditional WCF. The WCF Web API stuff looks interesting but still seems immature. I've found ASP.NET MVC to be the best tool for creating REST apis.


Even MVC is a little heavy and you don't get a lot of things for free with it. Compare it to some of the Java OSS projects like Enunciate and it still requires a lot of extra work.

On the .NET side, I would suggest looking at Demis Ballot's excellent Service Stack library. http://www.servicestack.net/


Thanks for the advice

I have found the routing in MVC and their returns types (JSON etc) working really well to be honest, I will take a look at that

Thanks




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: