Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 46 reacties

MySql gaat code van Google gebruiken in toekomstige versies van de database, meldt InfoWorld. Volgens de laatste roadmap van MySql kan de eerste versie van de database met Google-code begin 2009 verwacht worden.

MySQL-logoEerder dit jaar ondertekende Google een Contributor License Agreement, waardoor MySql de code in zijn software kan hergebruiken. De zoekgigant maakt op grote schaal gebruik van de opensourcedatabase en heeft diverse uitbreidingen gerealiseerd. Zo verbeterde Google de databasereplicatie en bouwde het bedrijf tools om een groot aantal MySql-databases te kunnen beheren. Een aantal tools zijn al via Google Code verkrijgbaar.

Versie 6.0, de eerstvolgende major release van MySql, zal vermoedelijk nog geen Google-code bevatten. De ontwikkelaars willen eerst nagaan welke ingebrachte code nuttig kan zijn voor andere gebruikers. Omdat de Google-code geoptimaliseerd is voor Linux, moeten in de volgende fase de nuttig bevonden bijdragen geport, getest en gedocumenteerd worden voor de vijftien door MySql ondersteunde besturingssystemen. Volgens de roadmap zal in de eerste point update van versie 6.0 naar 6.1 wel broncode van Google gebruikt worden. Als de tijdsplanning gehaald wordt, zal deze update begin 2009 verschijnen. Wel staat vast dat versie 6.0 een nieuwe storage engine krijgt.

MySql heeft ook zijn plannen voor versie 7.0 deels ontvouwd. Zo krijgt de database-engine een beveilingslaag op groepsniveau, zodat systeembeheerders eenvoudig rechten kunnen toekennen aan meerdere gebruikers tegelijk. Daarnaast moet 'transparante data-encryptie' voor een extra veiligheidslaag gaan zorgen. Hoewel het bedrijf toegeeft dat zijn database nog niet alle features heeft die de high-end databases van bijvoorbeeld IBM en Oracle al langer bezitten, denkt MySql ook in de toekomst een goedkoop en concurrerend alternatief te kunnen aanbieden. Versie 7.0 moet volgens de roadmap op zijn vroegst eind 2009 verkrijgbaar zijn.

Moderatie-faq Wijzig weergave

Reacties (46)

Beetje tegenstrijdig:

Hoewel het bedrijf toegeeft dat zijn database nog niet alle features heeft die de high-end databases van bijvoorbeeld IBM en Oracle al langer bezitten, denkt MySql ook in de toekomst een goedkoop en concurrerend alternatief te kunnen aanbieden.
Hoe kan je nou ergens mee concurreren als je bepaalde features niet hebt? Net als dat BMW goedkoop wil concurreren met Lamborghini (bijvoorbeeld) maar niet af wil stappen van hun 250kmh-begrenzer...

Ik snap ook wel; niet elke feature zal bij elk bedrijf nodig zijn maar het is een beetje tegenvallend als je een migratie-traject begeleidt en pas ergens halverwege erachter komt dat optie A bij database B met vinkje C nou net in MySQL niet mogelijk is.

[Reactie gewijzigd door MAX3400 op 24 oktober 2007 17:30]

Ach die missende features... Alleen als je een applicatie gebruikt die specifiek geoptimaliseerd is voor bijv. Oracle heb je kans dat die features ook daadwerkelijk gebruikt worden (tenzij het beheersfeautures zijn, of bijv. clustering feautures). Als je applicatie via ODBC of JDBC met de database praat en je kunt er een willekeurige database achter hangen (en dat is zo met de meeste applicaties) dan krijg je toch al een feautureset die gebruik maakt van de 'least common denominator' aan feautures.

Zelf gebruik ik meestal een ORM framework zoals Hibernate en dergelijke frameworks bieden meestal de meestgebruikte feautures op framework niveau aan. Zo start en commit je met Hibernate altijd een transactie, ook als de onderliggende database niet eens transacties ondersteunt. Of kun je voor primary keys opgeven dat je een auto-generated key wilt gebruiken, zelfs als je database dat niet ondersteunt. De missende feautures worden dan voor die databases door het ORM framework afgehandeld. Als je via Hibernate werkt met Oracle of MySQL dan is het verschil voor je applicatie onzichtbaar. Alleen eventuele performance of betrouwbaarheidsverschillen zouden nog merkbaar kunnen zijn, maar op die punten scoort MySQL heel behoorlijk.
Oracle heeft diverse uitbreidingen op de standaard SQL gemaakt, hierbij is te denken aan diverse uitbreidingen op de SQL-standaard zelf (CONNECT BY PRIOR bijvoorbeeld), een complete procedurele taal boven op SQL (met de heel erg creatieve naam PL/SQL) die ook weer in SQL queries te gebruiken is, object orientatie-achtige constructies bovenop SQL en PL/SQL.

Verder heeft men sinds Oracle 8i ook nog eens de mogelijkheid om Java in de database onder te brengen en heeft men ook al weer enige tijd de mogelijkheid om XML in de database te gebruiken (en die XML weer via SQL queries uit te lezen).

Zodra je iets ingewikkeldere zaken gaat doen zul je al snel van zaken als PL/SQL gebruik gaan maken en dat is iets dat -op dit moment- niet in andere RDBMS-en zit...

Maar:
Voor simpelere zaken, zoals een simpele blog of wiki of (kleine) web-winkel voldoet MySQL echter perfect...
Je geeft de verkeerde voorbeelden.

CONNECT BY PRIOR is in de SQL standaard gestandaardiseerd als WITH [RECURSIVE].
Procedurele taal is in de SQL standaard gestandaardiseerd als SQL/PSM.
Java in de database is in de SQL standaard gestandaardiseerd als SQL/JRT.
XML via queries is in de SQL standaard gestandaardiseerd als SQL/XML..

Alles wat je noemt is al lang zo normaal in andere databases dat het zelfs internationaal gestandaardiseerd is. (Alle bovenstaande punten worden niet alleen door andere grote databases als MS SQL Server en DB2 ondersteund, maar zelfs als door PostgreSQL.) Het enige wat er bijzonder is aan Oracle is dat het nergens de standaard syntax ondersteund waardoor het nooit compatible is.


Oracle is niet iets wat je 'snel' nodig hebt. Oracle heeft best een plek in de high end 24/7, multi TB, meervoudig gerepliceerde, alle logica in de DB, transactionele hoek waar weinig alyternatieven zijn. Maar als een DBA-er je verteld dat je al 'snel' Oracle nodig hebt is dat een typisch voorbeeld van "when the only tool you know is a hammer, everything looks like a nail".
Oracle is niet iets wat je 'snel' nodig hebt. Oracle heeft best een plek in de high end 24/7
Ik weet het niet hoor, er zijn best eenvoudige dingen waar je toch al wel snel Oracle nodig hebt. Neem nou het sneller laten lopen van queries die een beetje reken werk doen (zoals wat simple aggregations, maar dan over miljoenen rijen).

Als je die sneller wilt laten lopen kocht je vroeger gewoon een snellere CPU.

Enigste probleem, er worden niet echt snellere CPU's meer gemaakt. De performance per core gaat slechts heel langzaam omhoog, we moeten het nu vooral hebben van steeds meer en meer cores. Een entry-level servertje van amper 2000,- komt tegenwoordig al met 8 cores.

Databases zoals MySql (maar ook PostgreSql) kunnen helaas niet 1 query parallelliseren en zo optimaal gebruik maken van de aanwezige hardware. Voor zover ik het zie kan het nog wel jaren en jaren duren voordat deze 2 opensource databases ook maar een voorzichtig stapje in de richting doen.

Ondertussen hebben DB's als Oracle en MS SQL server deze mogelijkheden al enkele jaren. Zelfs al zou MySql en Postgres een dergelijke feature al over 5 jaar krijgen, dan nog ligt de Oracle implementatie zo'n decennium voor, waarin in die tijd natuurlijk ontzettend veel bugs opgelost zijn en er veel bekend is over specifieke optimalisaties.
Ik heb geen ervaring met DB2 en PostgreSQL - ik heb echter wel ervaringen met een oudere versie MS SQL Server en daar zatten veel van dit soort dingen niet in. En ik heb niet de indruk dat het daar in recentere versies wel ingebouwd zit. Dus heb ik wel degelijk een punt.

Verder kun je wel het idee hebben dat andere RDBMS-en netjes de standaard volgen, dat doen ze dus net zo min (zie SQL in Wikipedia). Oracle heeft vaak eerder een implementatie voor de zaken die ik genoemd heb, waarbij het inderdaad als nadeel heeft dat het niet aan de later verzonnen standaard voldoet, maar vaak verder gaat dan in de standaard omschreven staat.

Verder gaat het hier om Oracle vs. MySQL en niet om Oracle vs. andere commerciële databases. Overigens heb ik (soms) het idee dat MySQL er meer om compatibiliteit t.o.v. Oracle geeft als tegenover de diverse zaken die je hier opsomt.
Die JDBC drivers zijn erg handig wanneer je maar met 1 applicatie tegen de database praat. Zo'n JDBC driver is een soort schil om de database heen zodat inderdaad niet meer uitmaakt wat voor database je gebruikt.

Het nadeel van een JDBC driver is dat wanneer je je data gegarandeerd consistent wil houden, je altijd via de JDBC driver je database in moet. Doe je dat niet, dan kun je makkelijk wat checks over het hoofd zien en je applicatie pootje lichten.

Verder zullen de meeste programmeurs niet een complete rechten structuur in de applicatie/JDBC laag bouwen waardoor je het rechtensysteem van de database buitenspel zet. De meeste JDBC drivers zullen administrator-achtige rechten vereisen.

Kortom, qua beheer en flexibiliteit van toekomstige features lever je met zo'n JDBC driver nogal in.

Voor programeurs zijn drivers als Hibernate ideaal. Voor beheerders kunnen er negatieve effecten aan zitten.
Ik denk dat de veeleisende gebruikers die features uit bijvoorbeeld Oracle die niet in MySQL zitten gebruiken en willen emigreren er wel eerder dan halverwege achterkomen dat er functionaliteit mist.
Je zegt het zelf al, door de prijs natuurlijk.

Een Seat heeft minder luxe dan een BMW, maar concureert wel door een veel lagere prijs.
Mensen die een BMW -willen- kopen gewoon een BMW, ook al is die Seat goedkoper. BMW staat ook voor een bepaalde status voor sommigen, en Seat heeft dat toch wat minder. Zo zullen mensen ook per definitie de MySQL db wel of niet willen. Je gaat niet alleen voor functionaliteit maar ook voor de status, verpakking en kwaliteit. Nu is status niet echt aan de orde bij een SQLDB wat mij betreft, maar voor de afnemer misschien wel.
Oracle, DB2 en MSSQl hebben inderdaad standaard een helehoop features beschikbaar. Probleem is alleen dat 80% daarvan eigenlijk niet wordt gebruikt. Vrijwel alle database servers worden tegenwoordig gebruikt voor de data voorziening van een website.

Producten zoals Oracle en MSSQL worden dan ineens ontzettend duur omdat je dan een processor license ipv van een seat license nodig hebt.

Prijzen voor Processor (CPU, niet aantal cores) licenties voor Oracle 11g (standaard) liggen boven de 10.000 euro en daarmee komen we op een belangrijk punt :het beschikbare budget.

Een IT manager met een budget van 15.000 euro heeft dan nog maar 5.000 euro over voor database server hardware en natuurlijk nog een complete webserver. Kiest dezelfde manager voor MySQL dan heeft hij 15.000 euro voor hardware beschikbaar.

Misschien moet je je eerst afvragen waarom Google MySQL ipv Oracle gebruikt? Google heeft voldoende geld voor licenties dus daar zit het probleem niet. En eigenlijk kom ik weer terug bij mijn openings statement. Google vind blijkbaar dat MySQL voldoende mogelijkheden bied en dat Oracle niet voldoende meerwaarde kan bieden.

Heb je toch bijvoorbeeld de data mining opties van Oracle of MSSQL nodig? Dan kun je nog steeds MySQL als frontend database voor je website gebruiken en via een data sync Oracle of MSSQL op bais van seat licenses aanschaffen.
Vrijwel alle database servers worden tegenwoordig gebruikt voor de data voorziening van een website.
Vrijwel alle kleine database servers worden tegenwoordig gebruikt voor de data voorziening van een website.
Prijzen voor Processor (CPU, niet aantal cores) licenties voor Oracle 11g (standaard) liggen boven de 10.000 euro en daarmee komen we op een belangrijk punt :het beschikbare budget.
Daar gaan we weer... Oracle is zo duur...
Onzin:
Standard Edition One: US$149 per user, met een minimun van 5 users.
Express Edition: gratis
Misschien moet je je eerst afvragen waarom Google MySQL ipv Oracle gebruikt?
Omdat MySQL prima voldoet als query-only database - pak hem beet, zo'n 100% van de web applicaties. Multi-user is het echt naatje (iemand had het al over ACID)
Bovendien had google in het begin natuurlijk helemaal niet voldoende geld, en om nu alles om te gaan batterijen... dat is nu weer kapitaalvernietiging!
DAT is dan waarsch eerder een style fout, waar je kan verwachten dat men bedoeld, dat ze hopen een goedkoop alternatief bljven, en toch steeds concurender kunnen worden... (bijv door nieuwe functies toe te voegen).
Even in zijn algemeenheid gesproken: ik denk dat het juist bijna altijd zo is, dat twee concurrerende producten NIET precies dezelfde functionaliteit hebben. Dat is inderdaad bij auto's zo, maar ook bij computers, beeldschermen, stoelen, broodroosters enzovoort. De een is wat goedkoper, de ander is verkrijgbaar in een leuke kleur, de ander gaat langer mee, de ander heeft weer een extra aansluiting... Producten zijn bijna nooit aan elkaar gelijk, maar kunnen ondanks dat met elkaar concurreren.
Hoe kan je nou ergens mee concurreren als je bepaalde features niet hebt? Net als dat BMW goedkoop wil concurreren met Lamborghini (bijvoorbeeld) maar niet af wil stappen van hun 250kmh-begrenzer...
Nou als ik twijfel tussen deze twee auto's (:+) maar ik heb geen plannen om boven de 250km/h te rijden, dan zijn het toch concurrenten!
Geheel offtopic; Maar die grenzen zijn in Duitsland gewoon wettelijk vastgelegd omwille van veiligheid. 250 km/h voor personenauto's en 300 km/h voor motoren die in Duitsland geproduceerd worden.

Als je overigens er tijdens het migreren achterkomt dat MySQL iets niet kan wat je wel nodig hebt dan heeft de IT-er in deze gefaald en niet MySQL. Natuurlijk wordt het voor veel bedrijven wel een aantrekkelijker alternatief op deze manier. Het porten is dus in dit geval alsnog veel werk, daarom vind ik het van de kant van MySQL lovenswaardig om eerst een grondige analyse van de baten van de toe te voegen functionaliteit te ondernemen.

Wat ik nog niet helemaal snap; Waar precies profiteert Google in het hele verhaal? MySQL is toch al gratis en waarom zouden ze hun uitbreidingen eraan prijs willen geven aan mogelijke concurrenten in de vorm van een breed inzetbare implementatie in MySQL?
Wat ik nog niet helemaal snap; Waar precies profiteert Google in het hele verhaal? MySQL is toch al gratis en waarom zouden ze hun uitbreidingen eraan prijs willen geven aan mogelijke concurrenten in de vorm van een breed inzetbare implementatie in MySQL?
Mysql is dan misschien wel gratis, maar er is weldegelijk een licentie waar je mee akkoord moet gaan. Deze licentie (GPL) verplicht je om wijzigingen in de sourcecode weer beschikbaar te stellen voor de community.

Het is eigelijk te triest dat ze hier al die jaren niet aan hebben voldaan.
Er zijn de afgelopen tijd wat geruchten geweest om hier maatregelen tegen te nemen, en door het nu vrij te geven weten ze waarschijnlijk een rechtzaak te voorkomen.
GPL zegt dat als je GPL software wijzigt en die vervolgens uitbrengt, je de code ook openbaar moet maken.
Er staat nergens in de hele GPL dat je dat ook moet doen als je de gewijzigde code intern houdt.
Dat google niet voor iedere nieuwe versie weer moet testen of 'hun' programma's nog werken zoals ze moeten werken, maar dat MySQL dat al gedaan heeft.

Scheelt Google in uitgebreide testen.
MySQL krijgt er in 1 klap een hele hoop tools en uitbreidingen bij die het als verkoopargument kan gebruiken :)
Verkoopargument? Het is toch gratis :?
Ook gratis dingen moet je met "verkoopargumenten" aan de man brengen, en de cluster versies van MySQL zijn volgens mij nog steeds betaald, sowieso de support op de software is betaald en mogelijk is door de nieuwe toevloed aan tools/uitbreidingen etc. er minder support nodig dus goedkoper mocht een bedrijf toch een support contract willen.
Natuurlijk mag je MySQL gratis gebruiken. Alleen dan heb je bijvoorbeeld geen support etc. Ook krijg je bij de betaalde versie nog wat extra tools. Zie ook https://shop.mysql.com/enterprise/
De enterprise-versies niet.
"Wat ik nog niet helemaal snap; Waar precies profiteert Google in het hele verhaal? MySQL is toch al gratis en waarom zouden ze hun uitbreidingen eraan prijs willen geven aan mogelijke concurrenten in de vorm van een breed inzetbare implementatie in MySQL?"

Welkom in de wereld van opensource. Aangezien ze gebruik maken van een omgeving die al door anderen ontwikkeld is, is het wenselijk om verbeteringen ook met anderen te delen. Het is tamelijk naief om te denken dan anderen met deze uitbreidingen ineens een 2e Google zijn.
Google profiteert hiervan middels de Goodwill die het kweekt onder de open-source gemeenschap.
Door MySQL beter te maken kan het misschien deel van de markt van MSSQL afpakken. Verlies voor MS is indirecte winst voor Google denk ik zo.
Versie 6.1 begin 2009 en versie 7 eind 2009? Gaat dat niet allemaal wat te snel?

De overstap van versie 4 naar 5 is voor mijn gevoel pas net geweest.

Verder hoop ik dat MySql ook vooral licht, snel en simpel blijft, eventueel afhankelijk van welke functies je mee installeert. Ik denk dat het succes van MySql grotendeels te danken is aan de eenvoud van MySql i.c.m. PHP.
Ach, ligt eraan hoe je je inleest. Met de goede produkten eromheen, is Microsoft SQL ook goed raad te plegen via een "html-site" of binnen andere pakketten.

En met de kruisbestuivingen, kan je MySQL ook wel uitlezen met Excel ofzo.
Je zegt hetzelf al als je je goed inleest.
MsSQL draait niet zomaar. Het heeft meer functies, maar is ook stukken complexer en zwaarder.

MySQL dankt mijn inziens zijn populariteit door open karakter en gebruik bij web hosting en gerelateerde oplossingen. Het heeft een makkelijk SQL dialect, is goed gedocumenteerd en is de database waar elke beginnende ontwikkelaar mee leert programmeren zo`n beetje.

Apache, PHP en MySQL hebben grotendeels hun populariteit aan elkaar te danken, het e.e.a. is goed op elkaar afgestemd, en is eenvoudig te beheren wat voor veel hostingbedrijven dan ook het platform is dat gebruikt word.
Met Apache bedoel je toch de webserver neem ik aan?

De Apache organisatie bevat veel meer programma's/libs dan alleen de webserver en dé grootste bekende bij (java) developers is Log4j.
umm, ACID betekent niet alleen atomic.

Atomic: Een transactie altijd geheel WEL uitvoeren, of helemaal NIET.
Consistency: Na een transactie moeten alle integriteitsregels gelden.
Isolated: Elke transactie wordt apart uitgevoerd.
Durability: Een afgeronde transactie kan niet later nog eens ongedaan gemaakt worden.

Maar goed, die Falcon engine zou daar al verandering in moeten brengen.

O.a. door multi version concurrency control en transactions.

En dat is (IMHO) het sterke punt van MySQL. Voor elke toepassing is er een aparte storage engine. Niet elke applicatie heeft namelijk bovenstaande regels nodig.

[Reactie gewijzigd door IEF op 24 oktober 2007 22:13]

MySql heeft ook zijn plannen voor versie 7.0 deels ontvouwd. Zo krijgt de database-engine een beveilingslaag op groepsniveau, zodat systeembeheerders eenvoudig rechten kunnen toekennen aan meerdere gebruikers tegelijk

Dit is natuurlijk een mooie feature, welke ik een groot gemis vind als je gaat kijken naar andere database platformen :)

Ik ben zeer benieuwd in welke mate MySQL 7 kan gaan concurreren met een MSSQL bijvoorbeeld :)

Zeer goede zaak van Google om hierin te stappen, ook al is het natuurlijk wel ook deels in hun eigen voordeel :Y)
Zo'n zaken zijn al een tijdje mogelijk in MSSQL. Veel bedrijven die hun pakket verkopen leveren er gewoon MSSQL Express bij. Wel een limiet van 2GB aan data en geen x aantal cpu optimalisatie, maar dat is voor heel wat toepassingen voldoende én volledig gratis.
Tegen dat versie 7 uit is, heeft MSSQL waarschijnlijk al weer nieuwe features.
MSSQL Express ondersteund databases tot 4 GB, kan maximaal 1 GB geheugen gebruiken en benut slechts 1 processor / core. Voor heel wat websites ruim voldoende.
Google is dan ook een hele andere gebruiker denk alleen al eens aan alle licenties die ze nodig zouden hebben als ze MSSQL of Oracle gaan draaien daarvoor kun je een redelijke hoeveelheid programeurs aan de slag zetten om maatwerk te creeren voor MYSQL. Je kunt dus niet zegen dat omdat google MySQL gebruikt MySQL beter is dan MSSQL. Je moet dat per situatie vergelijken.
MSSQL, Oracle, DB2 en nog anderen(b.v. het OpenSource Postgresql) zijn zeker 'beter' dan MySQL(als je het hebt over functionaliteiten, en vooral schaalbaarheid).
MySQL is wel lekker simpel, en is goed gedocumenteerd.
Bovendien: Als MySQL doet wat nodig is(en dat is voor iedereen anders), waarom zou je dan grof gaan betalen voor b.v. Oracle?

Overigens denk ik niet dat Google zijn gegevens zoals de google cache opslaat in MySQL. Weet iemand misschien hoe ze dit doen?
Dit zit al een tijdje standaard in Postgresql.
Als je een OpenSource database platform zoekt met meer 'enterprise' features: kijk zeker eens naar Postgresql.
Gaan ze dan ook eens een keer werken aan de ACID eisen van een DBMS?
Je hebt het hier over Atomic transactions toch? Ik dacht dat MySQL dat al langer ondersteunde zolang je maar de juiste storage engine gebruikt? BerkeleyDB i.p.v. InnoDB of zo?

Edit: Als je het artikel over de storage engine leest waarnaar vanuit dit artikel wordt gelinked dan zie je dat Falcon ook al beschikt over ACID transactie ondersteuning. En voor zover ik weet was dit al vanaf MySQL 5 beschikbaar voor andere storage engines.

[Reactie gewijzigd door OddesE op 24 oktober 2007 18:23]

Ja, en waar blijven die mensen die altijd maar roepen dat MySQL geen profesionele oplossing kan bieden?
Dat enkel SUN en IBM de mark domineren betekent niet dat het onmogelijk is om een proffiesionlee (gratis) concurent te schrijven
ik denk dat je Oracle bedoeld ipv Sun.

professionele gratis (opensource) -> Postgresql (maar het kan idd niet tippen aan de big boys)

Op dit item kan niet meer gereageerd worden.



Apple iOS 10 Google Pixel Apple iPhone 7 Sony PlayStation VR AMD Radeon RX 480 4GB Battlefield 1 Google Android Nougat Watch Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True