473,854 Members | 1,531 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Humor me: Postgresql vs. MySql (esp. licensing)

Yes, I know you've seen the above subject before, so please be gentle with
the flamethrowers.

I'm preparing to enter a discussion with management at my company
regarding going forward as either a MySql shop or a Postgresql shop.

It's my opinion that we should be using PG, because of the full ACID
support, and the license involved. A consultant my company hired before
bringing me in is pushing hard for MySql, citing speed and community
support, as well as ACID support.

My biggest concern with MySQL is licensing. We need to keep costs low,
and last I remember the parent company was being pretty strict on "fair
use" under the GPL. If I recall, they even said a company would have to
license the commercial version if it were simply used operationally within
the company.

Also, I was under the impression that Postgresql had pretty much caught up
with MySql in the speed category...is this not the case?

Finally, ACID support in mysql always seemed kind of a hack....perhaps
this has changed?

Thanks for any input (armament ;) ) you can provide.

John

---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to ma*******@postg resql.org so that your
message can get through to the mailing list cleanly

Nov 12 '05
74 8079
On Thu, Oct 09, 2003 at 08:33:12AM -0500, no***@celery.ts si.com wrote:
I'm not trying to be argumentative here or defending MySQL, just noting
that a shutdown process that isn't tested can cause problems even with
commercial databases. And as someone who has to put up with MySQL on
occasion, I'm always looking for problem areas for the DBA.


Well, you can convert that into an argument favoring PostgreSQL. In
Postgres, no matter what shutdown procedure you use, a committed
transaction will be a committed transaction after the power comes back,
and an uncommitted transaction will still be an uncommitted transaction,
without needing lengthy rollback procedures. If commercial systems,
including MySQL, do not work the same, it is some kind of "issue".
(Just like slow aggregates are an "issue" in Postgres just because other
systems make them work fast.)

--
Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)

---------------------------(end of broadcast)---------------------------
TIP 8: explain analyze is your friend

Nov 12 '05 #31
On Thu, 9 Oct 2003, Shridhar Daithankar wrote:
no***@celery.ts si.com wrote:
One of my friend lost data with mysql yesterday.. The machine was taken down for
disk upgrade and mysql apperantly did not commit the last insert.. OK he was
using myisam but still..:-)

It sounds like that is more a problem with improper operating protocols
than with the underlying database.


No. Problem is machine was shutdown with shutdown -h. It sends sigterm to
everybody. A good process would flsuh the buffers to disk before finishing.
Mysql didn't on that occasion.

Transactions or not, this behaviour is unacceptable for any serious app.

Would PG know enough to do a commit regardless of how the database was
shut down? A second question is whether doing a commit is what the user
or application would always want to have happen, as it could result in a
half-completed transaction.


Do a shutdown -h on a live database machine with pg. It will gracefully shut
itself down.


If you're running on a properly setup machine (i.e. SCSI and / or battery
backed RAID cache) you can just pull the plug and pg will restart
gracefully. It's one of the standard tests.

Try this on a SCSI based machine with a journaling file system:

pgbench -i -s 10
pgbench -c 200 -t 1000000
wait a minute
start a vacuum
pull the plug
wait a minute
plug it in (turn it on if necessary)
voila, postgresql will recover gracefully with no corruption.

Now ask the consultant to do the same for MySQL. :-)
---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?

http://archives.postgresql.org

Nov 12 '05 #32
On Thu, 9 Oct 2003 no***@celery.ts si.com wrote:
It sounds like that is more a problem with improper operating protocols
than with the underlying database.


No. Problem is machine was shutdown with shutdown -h. It sends sigterm to
everybody. A good process would flsuh the buffers to disk before finishing.
Mysql didn't on that occasion.

Transactions or not, this behaviour is unacceptable for any serious app.


True, but was it because the shutdown scripts weren't set up properly
or does MySQL just not handle the 'kill' properly? (I would consider the
latter a serious bug.)

I still fault the operations protocol, part of what should be done in
setting up a production shop is testing various shutdown options, and it
sounds like that wasn't done in advance or they would have known to build
in extra steps for shutting down MySQL.
Do a shutdown -h on a live database machine with pg. It will gracefully shut
itself down.


Is that true for all OS flavors and is it dependent upon the DBA having
set up proper shutdown scripts?

I'm not trying to be argumentative here or defending MySQL, just noting
that a shutdown process that isn't tested can cause problems even with
commercial databases. And as someone who has to put up with MySQL on
occasion, I'm always looking for problem areas for the DBA.


but a database should survive this kind of thing. Postgresql certainly
can survive having its power plug pulled mid transaction under heavy load.
that's what WAL is for. The fact that MySQL can be corrupted by being
shut down improperly points to a shortcoming a user should be aware of
before choosing it.
---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to ma*******@postg resql.org

Nov 12 '05 #33
One other thing to mention - the whole REASON we use relational databases
are not because they are faster - it's because people care about data. If
you just want speed, use a hierarchical database, or just use an indexed
file.

However, the reason the industry switched to relational databases was
that they cared more that they had consistent data that worked with
multiple applications that was able to guarantee data integrity (i.e. -
support for views, constraints, and triggers) than they were about speed.
In fact, the first relational databases were 50x slower that their
hierarchical and network counterparts. However, the industry still
switched because data integrity and data independence is worth that much.

If your application needs speed that much more than data integrity, you
might as well just use REALLY FAST stuff like indexed files or a
hierarchical database or the Prevayler (sp?) than just use a fast
semi-relational database that doesn't support the features that people
use databases for anyway.

Jon
---------------------------(end of broadcast)---------------------------
TIP 9: the planner will ignore your desire to choose an index scan if your
joining column's datatypes do not match

Nov 12 '05 #34
On Thu, 2003-10-09 at 08:33, no***@celery.ts si.com wrote:
[snip]
that a shutdown process that isn't tested can cause problems even with
commercial databases. And as someone who has to put up with MySQL on


Then that's a piss-poor commercial DBMS, since that means that the
DB would be corrupt if the box crashed hard.

--
-----------------------------------------------------------------
Ron Johnson, Jr. ro***********@c ox.net
Jefferson, LA USA

After listening to many White House, Pentagon & CENTCOM briefings
in both Gulf Wars, it is my firm belief that most "senior
correspondents" either have serious agendas that don't get shaken
by facts, or are dumb as dog feces.
---------------------------(end of broadcast)---------------------------
TIP 9: the planner will ignore your desire to choose an index scan if your
joining column's datatypes do not match

Nov 12 '05 #35
> So if I build and sell an appliance (hardware+softw are) based on
debian and using the 'free' collection of software, suddenly I'm not
in compliance with their license. Sounds like a time-bomb waiting to
explode.


I think MySQL is using deceptive language about what you can and can't do
with MySQL. They use "create an application using MySQL" as a synonym for
"modififyin g the source code of MySQL". Reall, it's just standard GPL -
they are just trying to muddy the waters to make buying it an easier road.
If you read at the bottom, they basically say that if you don't modify
their source code, you can still redistribute, but add some "iffy"
language to get you to fear doing so.

Jon
---------------------------(end of broadcast)---------------------------
TIP 9: the planner will ignore your desire to choose an index scan if your
joining column's datatypes do not match

Nov 12 '05 #36
> MySQL's licence does not require you to buy a licence for _any_
commercial use, but only for commercial use where you do not release
your source code under a GPL-compatible licence.

There seems to be an awful lot of confusion about the GPL. Maybe
Microsoft's campaign has been bearing fruit in unlikely quarters...
I think the confusion comes from the fact that a database is kind of a
meta-application. The GPL does not come into play when something is used
as an external tool, but it does come into play when you link with
libraries. In the case with databases, both are _usually_ happening.

For instance, if I were to write my own MySQL driver that communicated w/
MySQL over a socket using no MySQL headers, my entire application would
not have to be GPL because it doesn't link with MySQL - it just uses it as
a tool. However, if I use MySQL's C-language driver, then my code
includes MySQL source at compile-time, and thus the binary is a derivative
work, subject to the GPL.

The waters get a bit muddier when dealing with scripting languages.

If I use Perl, and just "use DBD::MySQL;", then NO MYSQL CODE is present
in my code. I _refer_ to it, but the "use" statement is indeed my code.
When I ship my application, I'm shipping three separate parts - MySQL, the
MySQL driver, and my Perl code. The _user_, when they run the code, is
the one who combines them. As far as the GPL is concerned, the user can
combine anything they want to, so the Perl code does not have to be GPL to
be distributed.

This is different than dynamic linking. With dynamic linking, you still
have to #include the header files at compile time. So, while you could
distribute your source code under any license you choose, if you
distributed binaries you would have to distribute them GPL, because GPL
code is included in the binary through your #include.

Jon


--
Oliver Elphick Ol************@ lfix.co.uk
Isle of Wight, UK http://www.lfix.co.uk/oliver
GPG: 1024D/3E1D0C1C: CA12 09E0 E8D5 8870 5839 932A 614D 4C34 3E1D 0C1C
=============== =============== ==========
"Let no man say when he is tempted, I am tempted of
God; for God cannot be tempted with evil, neither
tempteth he any man; But every man is tempted, when he
is drawn away of his own lust, and enticed."
James 1:13,14
---------------------------(end of broadcast)---------------------------
TIP 9: the planner will ignore your desire to choose an index scan if your
joining column's datatypes do not match

---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
(send "unregister YourEmailAddres sHere" to ma*******@postg resql.org)

Nov 12 '05 #37
El Jue 09 Oct 2003 08:33, Harald Fuchs escribió:
In article <20************ *******@zf.jcu. cz>,

Karel Zak <za***@zf.jcu.c z> writes:
BTW, MySQL versions without transactions are unusable for 365/7/24
systems, because you cannot make backup of DB without transaction or
redo log.


Huh? People have backed up their MyISAM tables with "mysqlhotco py" or
something like that for ages. This tool locks all tables and can take
a significant amount of time for large databases. Since many people
don't want that, they just create a small replication slave used
exclusively for backup.


Sorry, is that suppose to be a solution?
It really freaks me out!

--
11:58:01 up 6 days, 21:35, 3 users, load average: 0.18, 0.34, 0.49
-----------------------------------------------------------------
Martín Marqués | mm******@unl.ed u.ar
Programador, Administrador, DBA | Centro de Telematica
Universidad Nacional
del Litoral
-----------------------------------------------------------------
---------------------------(end of broadcast)---------------------------
TIP 8: explain analyze is your friend

Nov 12 '05 #38
ol**@lfix.co.uk (Oliver Elphick) writes:
MySQL's licence does not require you to buy a licence for _any_
commercial use, but only for commercial use where you do not release
your source code under a GPL-compatible licence.


That's all well and good, but isn't consistent with what MySQL AB
writes about the matter.

Their page on licensing doesn't say what you wrote; it gives quite a
different message. When they write about it, they are surely
encouraging the perception that if you are using their product either:
a) For "commercial purposes," or
b) With non-GPLed code,
they expect you to pay for "commercial " licenses.

In a world where the activities of SCO are leaving people a little
edgy, that's leaving people sensitive to the notion that they might
get sued by a company for some form of 'infringment' irrespective of
what a license written by some other organization might say. (And
those that use BSD-based systems should not feel comfortable, either.
They have been affected, in the past, by similar issues.)

If I were to be cavalier and behave that the GPL applied in 'pure'
form to MySQL, I would be more than a little concerned that I might
get a letter from MySQL AB's lawyers demanding some combination of
"cease and desist" and "pay us the money you owe." That the demand
might be frivolous would not prevent this from costing me time, legal
fees, and lost hair and sleep.
--
(format nil "~S@~S" "cbbrowne" "acm.org")
http://www3.sympatico.ca/cbbrowne/oses.html
Rules of the Evil Overlord #145. "My dungeon cell decor will not
feature exposed pipes. While they add to the gloomy atmosphere, they
are good conductors of vibrations and a lot of prisoners know Morse
code." <http://www.eviloverlor d.com/>
Nov 12 '05 #39

On Thursday, October 9, 2003, at 01:42 AM, Shridhar Daithankar wrote:
no***@celery.ts si.com wrote:
One of my friend lost data with mysql yesterday.. The machine was
taken down for disk upgrade and mysql apperantly did not commit the
last insert.. OK he was using myisam but still..:-)

It sounds like that is more a problem with improper operating
protocols
than with the underlying database.


No. Problem is machine was shutdown with shutdown -h. It sends sigterm
to everybody. A good process would flsuh the buffers to disk before
finishing. Mysql didn't on that occasion.

Transactions or not, this behaviour is unacceptable for any serious
app.
Would PG know enough to do a commit regardless of how the database
was shut down? A second question is whether doing a commit is what
the user or application would always want to have happen, as it could
result in a half-completed transaction.


Do a shutdown -h on a live database machine with pg. It will
gracefully shut itself down.

Shridhar

I'm curious ... do MySQL lists talk about this as much as we do? What
do they say?

"Well, we run Slashdot."
"Well, we can "select count(*) faster"
"We have all the features they do! Nobody uses views or triggers!"

Jeff
---------------------------(end of broadcast)---------------------------
TIP 9: the planner will ignore your desire to choose an index scan if your
joining column's datatypes do not match

Nov 12 '05 #40

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

20
1509
by: John Wells | last post by:
Yes, I know you've seen the above subject before, so please be gentle with the flamethrowers. I'm preparing to enter a discussion with management at my company regarding going forward as either a MySql shop or a Postgresql shop. It's my opinion that we should be using PG, because of the full ACID support, and the license involved. A consultant my company hired before bringing me in is pushing hard for MySql, citing speed and community...
0
9901
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
9751
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
11027
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
10682
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
10761
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
10371
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
1
7917
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
7082
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
5743
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.