3.7.2 Lagring av data i MySQL och VoltDB
6. Diskussion och slutsatser 1 Resultat
Genom en experimentell studie har data om databaserna MySQL, MongoDB och VoltDB erhållits. Dessa data tyder på att VoltDB följt av MySQL utför hämtning, uppdatering samt radering av data snabbare än MongoDB vid mindre datamängder. Vid större mängder data (100 000 - 1000 000 dokument) tydliggörs det att MongoDB uppdaterar kollektioner på en kortare tid än VoltDB uppdaterar tabeller bestående av samma mängd. MySQL presterar bäst sätt till responstid vid utförande av nästan samtliga operationer när datamängden är större. Dock framkom det att bägge relationsdatabaserna MySQL och VoltDB hade problem vid hämtning av en miljon dokument. Då samtliga tester utfördes fem gånger per operation klarade MySQL av att hämta en miljon dokument tre av fem gånger, medan VoltDB inte alls klarade av att hämta en miljon dokument. MongoDB klarade av alla operationer samtliga fem gånger på redovisad tid.
6.2. Implikationer
Detta examensarbete bidrar till ökad kännedomen kring NewSQL-databaser och hur dessa presterar i förhållande till etablerade databashanteringssystem som de traditionella SQL-databaserna och NoSQL-databaserna. Detta åstadkoms genom en experimentell studie som testar samma typ av data under samma omständigheter hos samtliga tre databaserna.
6.3. Begränsningar
Då tid och resurser har varit begränsade under examensarbetets gång kan inte en konsensus slutsats dras kring varken resultatet eller de tre databashanteringsystemen. Med en kraftfullare maskin att utföra experiment på hade resultaten kunnat se annorlunda ut. En större tidsram hade inneburit att ytterligare en typ av data, exempelvis ostrukturerad data hade kunnat testas och jämföras. Slutligen hade fler tester i olika miljöer kunnat genomföras med en större tidsram.
6.4. Slutsatser och rekommendationer
Denna studie visar att VoltDB, följt av MySQL har lägst responstid vid hämtning, uppdatering och radering av data i mindre mängder (100 dokument). Högst responstid vid denna datamängd innehar MongoDB.
När datamängden överstiger 100 000 dokument har VoltDB avsevärda problem med framförallt hämtning och uppdatering av data. Vid denna datamängd utför MySQL följt, av MongoDB uppdateringsoperationen snabbare än VoltDB. Medan den sistnämnda databasen inte alls kan genomföra hämtning av en miljon dokument. Den enda märkbara bristen hos MySQL under experiment var även här vid hämtning av en miljon dokument. Tillskillnad ifrån VoltDB skickades tre requests med framgång till MySQL-databasen för att sedan förneka de två sista. Genomsnittstiden för dessa tre request var fortfarande lägre än MongoDBs genomsnittstid för samma operation. Tidsmässigt presterade MySQL snabbast över alla operationer när datamängden var en miljon.
Sammanfattningsvis tyder studien på att VoltDB och MySQL är väldigt likvärdiga sett till tid vid mindre datamängder, där VoltDB har litet övertag. MongoDB befinner sig på en klar tredjeplats i denna kategori. Vid större datamängder blir det väldigt svårt att avgöra vilken databas som är att föredra över de andra då VoltDB exempelvis hade en standardavvikelse på 81.42 % av medelvärdet vid uppdatering av en miljon dokument. Detta är ett extremfall som inte ger en generell bild på hur pass snabbt VoltDB uppdaterar en miljon dokument, och bör därför inte dras några slutsatser kring. Detsamma gäller vid hämtning av en miljon dokument med VoltDB, där testet inte gick igenom alls. Detta kan ha berott på att VoltDB är klassad som en in-memory databas och då är beroende av ramminnet, som inte räckte till för en rättvis bedömning av resultatet. Med detta sagt rekommenderas inte en databas över de andra vid större datamängder då oväntade faktorer påverkar testresultatet.
6.5. Vidare forskning
För vidare forskning hade varit intressant att utföra ett liknande experiment i en cloud-miljö. Speciellt då flera NewSQL-databaser, exempelvis NuoDB lägger resurser på, och designar sin akitektur till att fungera så optimalt som möjligt i denna miljö. I en cloud-miljö är det viktigt att ta hänsyn till att flera ytterligare variabler kan leda till missledande resultat. Därför bör den/de som designar ett sådant här arbete vara extra försiktiga vid avgränsning av arbete.
Referenser
Ansari, H. (2018). Performance Comparison of Two Database Management Systems
MySQL vs MongoDB (Kandidatuppsats). Hämtad från Umeå Universitet, Institutionen
för datavetenskap webbplats:
http://umu.diva-portal.org/smash/get/diva2:1278762/FULLTEXT01.pdf
Apache Jmeter.(u.å.). Apache Jmeter. Hämtad 2019-08-30 från https://jmeter.apache.org
DB-Engines. (u.å.). Relational DBMS. Hämtad 2019-03-30 från https://db-engines.com/ en/article/Relational+DBMS
Deepak, G. (2016). A Critical Comparison of NOSQL Databases in the Context of ACID
and BASE (Masteruppsats). Hämtad från St. Cloud State University, Department of
Information Systems webbplats:
https://pdfs.semanticscholar.org/a863/af792db05189e2c5c232d89c6f41675af9ec.pdf
Enlyft.(u.å.). Companies using Apache Jmeter. Hämtad 2019-09-20 från
https://enlyft.com/tech/products/apache-jmeter
Foote, K.D. (2018). A Brief History of Non-Relational Databases. Hämtad 2019-03-30 från
https://www.dataversity.net/a-brief-history-of-non-relational-databases/#
Fotache, M., & Cogean, D. (2013). NoSQL and SQL Databases for Mobile Applications. Case Study: MongoDB versus PostgreSQL. Informatica Economica, 17(2), 41–58.
https://doi.org/10.12948/issn14531305/17.2.2013.04
Fotache, M., & Strimbei, C. (2015). SQL and Data Analysis. Some Implications for Data Analysits and Higher Education. Procedia Economics and Finance, 20, 243–251.
https://doi.org/10.1016/s2212-5671(15)00071-4
Fowler, B., Godin,J., & Geddy, M. (2016). Teaching Case: Introduction to NoSQL in a Traditional Database Course. Journal of Information Systems Education 27(2), 99-103.
https://eric.ed.gov/?id=EJ1126054
Halili, E.H. (2008). Apache JMeter: A Practical Beginner's Guide to Automated Testing
and Performance Measurement for Your Websites. Birmingham, England: Packt
Publishing Ltd.
Kumar, R., Gupta, N., Fowler, B., Charu, S., & Jangir, S.K. (2014). Manage Big Data through NewSQL. National Conference on Innovation in Wireless Communication and
Networking Technology. https://doi.org/10.13140/2.1.3965.3768
Madison, M., Barnhill, M., Napier, C., & Godin, J. (2015) NoSQL Database
Technologies, Journal of International Technology and Information Management 24(1). Artikel 1.
https://scholarworks.lib.csusb.edu/jitim/vol24/iss1/1
MongoDB.(u.å.). What Is MongoDB?. Hämtad 2019-08-30 från
https://www.mongodb.com/what-is-mongodb
Muijs, D. (2004). Doing quantitative research in education with SPSS. London, England: Sage Publications.
Mukherjee, S. (2019). The Battle between NoSQL Databases and RDBMS. Hämtad 2019-06-30 från http://www.ijirset.com/upload/2019/may/107_The.pdf
MySQL. (2019). Dev.mysql. Hämtad 2019-06-01 från
https://dev.mysql.com/doc/x-devapi-userguide/en/crud-operations-overview.html
NoSQL-database .(u.å.). NOSQL DEFINITION. Hämtad 2019-08-30 från
https://nosql-database.org/
Oracle.(u.å.). What Is a Relational Database?. Hämtad 2019-08-30 från
https://www.oracle.com/database/what-is-a-relational-database/
Pavlo, A., & Aslett, M. (2016). What’s Really New with NewSQL?. SIGMOD Records,
45(2), 45-55. https://doi.org/10.1145/3003665.3003674
Pokorny, J. (2011). NoSQL Databases: a step to database scalability in Web environment. International Journal of Web Information Systems, 9(1), 278-283.
https://doi.org/10.1145/2095536.2095583
Povilavicius, G. (2005). A JDBC driver for an Object – Oriented Database Mediator (Masteruppsats). Hämtad från Uppsala universitet, Institutionen för
informationsteknologi webbplats:
http://www.it.uu.se/research/group/udbl/Theses/GiedriusPovilaviciusMSc.pdf
Sortelius, E., & Önnestam, G. (2018). PÅVERKAN AV QUERY-KOMPLEXITET PÅ
SÖKTIDEN HOS NOSQL-DATABASER (Kandidatuppsats). Hämtad från Högskolan i
Skövde, Institutionen för informationsteknologi webbplats:
http://his.diva-portal.org/smash/get/diva2:1232815/FULLTEXT01.pdf
Walliman, N. (2011). Research Methods: the basics. New York, USA: Routledge.