Tietokantojen ja ORM:n suorituskykyvertailu eri ohjelmistokehyksissä

Tutkielman tavoitteena oli selvittää, missä määrin eri teknologiat vaikuttavat sovelluksen suorituskykyyn. Hyvä suorituskyky on tärkeää web-ohjelmistoissa, koska se vaikuttaa käyttäjäkokemukseen ja sivuston käytettävyyteen. Nopea sivusto parantaa käyttäjien sitoutumista ja vähentää sivuston hylkäämi...

Full description

Bibliographic Details
Main Author: Södergård, Alexander
Other Authors: Informaatioteknologian tiedekunta, Faculty of Information Technology, Informaatioteknologia, Information Technology, Jyväskylän yliopisto, University of Jyväskylä
Format: Master's thesis
Language:fin
Published: 2023
Subjects:
Online Access: https://jyx.jyu.fi/handle/123456789/87787
_version_ 1826225695659917312
author Södergård, Alexander
author2 Informaatioteknologian tiedekunta Faculty of Information Technology Informaatioteknologia Information Technology Jyväskylän yliopisto University of Jyväskylä
author_facet Södergård, Alexander Informaatioteknologian tiedekunta Faculty of Information Technology Informaatioteknologia Information Technology Jyväskylän yliopisto University of Jyväskylä Södergård, Alexander Informaatioteknologian tiedekunta Faculty of Information Technology Informaatioteknologia Information Technology Jyväskylän yliopisto University of Jyväskylä
author_sort Södergård, Alexander
datasource_str_mv jyx
description Tutkielman tavoitteena oli selvittää, missä määrin eri teknologiat vaikuttavat sovelluksen suorituskykyyn. Hyvä suorituskyky on tärkeää web-ohjelmistoissa, koska se vaikuttaa käyttäjäkokemukseen ja sivuston käytettävyyteen. Nopea sivusto parantaa käyttäjien sitoutumista ja vähentää sivuston hylkäämisen riskiä. Tarkasteltavat teknologiat olivat ohjelmistokehykset, ORM:t, sekä tietokannat. Ohjelmistokehyksistä tutkielmassa oli mukana ASP.NET Core ja Django. ASP.NET Core sovellusten ORM oli Entity Framework Core tai Dapper. Djangolla toteutetuissa sovelluksissa käytettiin kehyksen omaa ORM:ää tai SQLAlchemyä. Tietokantojen osalta tutkielmassa tarkasteltiin relaatiotietokantojen ja NoSQL-tietokantojen suorituskykyä. Relaatiotietokannoiksi valikoituivat SQLite, PostgreSQL, sekä MySQL. NoSQL-tietokannoista tarkasteltiin ainoastaan MongoDB-tietokantaa. Näitä teknologioita hyödynnettiin yksinkertaisten web-ohjelmistojen toteutukseen ja suorituskyky mitattiin JMeter-ohjelmiston avulla. Palvelimelle lähetettiin pyyntöjä ja suorituskyky mitattiin keskimääräisen vasteajan perusteella. Dapper oli suorituskykyisin ORM. MySQL ja PostgreSQL olivat hyvin tasaväkiset, mutta liitoskyselyissä PostgreSQL oli tehokkaampi. MongoDB:n suorituskyky liitoskyselyissä oli huomattavasti heikompi kuin muilla tietokannoilla. Kirjoitusoperaatioista SQLite suoriutui selkeästi huonommin kuin muut. The aim of the thesis was to find out to what extent different technologies affect the performance of the application. Good performance is important in web software because it affects user experience and site usability. A fast site improves user engagement and reduces the risk of site abandonment. The examined technologies were application frameworks, ORMs, and databases. The thesis includes ASP.NET Core and Django as the application frameworks. Entity Framework Core or Dapper are used as the ORM for ASP.NET Core applications, while Django applications use the framework’s own ORM or SQLAlchemy. In terms of databases, the performance of relational databases and NoSQL databases are examined. SQLite, PostgreSQL, and MySQL are the chosen relational databases, while only MongoDB is examined for NoSQL databases. These technologies were utilized in simple web software implementation and performance was measured using JMeter software. Requests were sent to the server and performance was measured based on the average response time. Dapper was the most performing ORM. MySQL and PostgreSQL were very evenly matched, but in join queries, PostgreSQL was more efficient. MongoDB’s performance in join queries was significantly lower than other databases. Regarding write operations, SQLite performed worse than the others.
first_indexed 2023-06-15T20:01:19Z
format Pro gradu
fullrecord [{"key": "dc.contributor.advisor", "value": "Lahtonen, Tommi", "language": "", "element": "contributor", "qualifier": "advisor", "schema": "dc"}, {"key": "dc.contributor.advisor", "value": "Rossi, Tuomo", "language": "", "element": "contributor", "qualifier": "advisor", "schema": "dc"}, {"key": "dc.contributor.author", "value": "S\u00f6derg\u00e5rd, Alexander", "language": "", "element": "contributor", "qualifier": "author", "schema": "dc"}, {"key": "dc.date.accessioned", "value": "2023-06-15T06:23:17Z", "language": null, "element": "date", "qualifier": "accessioned", "schema": "dc"}, {"key": "dc.date.available", "value": "2023-06-15T06:23:17Z", "language": null, "element": "date", "qualifier": "available", "schema": "dc"}, {"key": "dc.date.issued", "value": "2023", "language": "", "element": "date", "qualifier": "issued", "schema": "dc"}, {"key": "dc.identifier.uri", "value": "https://jyx.jyu.fi/handle/123456789/87787", "language": null, "element": "identifier", "qualifier": "uri", "schema": "dc"}, {"key": "dc.description.abstract", "value": "Tutkielman tavoitteena oli selvitt\u00e4\u00e4, miss\u00e4 m\u00e4\u00e4rin eri teknologiat vaikuttavat\nsovelluksen suorituskykyyn. Hyv\u00e4 suorituskyky on t\u00e4rke\u00e4\u00e4 web-ohjelmistoissa, koska se\nvaikuttaa k\u00e4ytt\u00e4j\u00e4kokemukseen ja sivuston k\u00e4ytett\u00e4vyyteen. Nopea sivusto parantaa k\u00e4ytt\u00e4jien sitoutumista ja v\u00e4hent\u00e4\u00e4 sivuston hylk\u00e4\u00e4misen riski\u00e4. Tarkasteltavat teknologiat olivat\nohjelmistokehykset, ORM:t, sek\u00e4 tietokannat. Ohjelmistokehyksist\u00e4 tutkielmassa oli mukana ASP.NET Core ja Django. ASP.NET Core sovellusten ORM oli Entity Framework\nCore tai Dapper. Djangolla toteutetuissa sovelluksissa k\u00e4ytettiin kehyksen omaa ORM:\u00e4\u00e4 tai\nSQLAlchemy\u00e4. Tietokantojen osalta tutkielmassa tarkasteltiin relaatiotietokantojen ja NoSQL-tietokantojen suorituskyky\u00e4. Relaatiotietokannoiksi valikoituivat SQLite, PostgreSQL, sek\u00e4\nMySQL. NoSQL-tietokannoista tarkasteltiin ainoastaan MongoDB-tietokantaa. N\u00e4it\u00e4 teknologioita hy\u00f6dynnettiin yksinkertaisten web-ohjelmistojen toteutukseen ja suorituskyky mitattiin\nJMeter-ohjelmiston avulla. Palvelimelle l\u00e4hetettiin pyynt\u00f6j\u00e4 ja suorituskyky mitattiin keskim\u00e4\u00e4r\u00e4isen vasteajan perusteella. Dapper oli suorituskykyisin ORM. MySQL ja PostgreSQL\nolivat hyvin tasav\u00e4kiset, mutta liitoskyselyiss\u00e4 PostgreSQL oli tehokkaampi. MongoDB:n\nsuorituskyky liitoskyselyiss\u00e4 oli huomattavasti heikompi kuin muilla tietokannoilla. Kirjoitusoperaatioista SQLite suoriutui selke\u00e4sti huonommin kuin muut.", "language": "fi", "element": "description", "qualifier": "abstract", "schema": "dc"}, {"key": "dc.description.abstract", "value": "The aim of the thesis was to find out to what extent different technologies affect\nthe performance of the application. Good performance is important in web software because\nit affects user experience and site usability. A fast site improves user engagement and reduces\nthe risk of site abandonment. The examined technologies were application frameworks,\nORMs, and databases. The thesis includes ASP.NET Core and Django as the application\nframeworks. Entity Framework Core or Dapper are used as the ORM for ASP.NET Core\napplications, while Django applications use the framework\u2019s own ORM or SQLAlchemy.\nIn terms of databases, the performance of relational databases and NoSQL databases are\nexamined. SQLite, PostgreSQL, and MySQL are the chosen relational databases, while only\nMongoDB is examined for NoSQL databases. These technologies were utilized in simple web\nsoftware implementation and performance was measured using JMeter software. Requests\nwere sent to the server and performance was measured based on the average response time.\nDapper was the most performing ORM. MySQL and PostgreSQL were very evenly matched,\nbut in join queries, PostgreSQL was more efficient. MongoDB\u2019s performance in join queries\nwas significantly lower than other databases. Regarding write operations, SQLite performed\nworse than the others.", "language": "en", "element": "description", "qualifier": "abstract", "schema": "dc"}, {"key": "dc.description.provenance", "value": "Submitted by Paivi Vuorio (paelvuor@jyu.fi) on 2023-06-15T06:23:17Z\nNo. of bitstreams: 0", "language": "en", "element": "description", "qualifier": "provenance", "schema": "dc"}, {"key": "dc.description.provenance", "value": "Made available in DSpace on 2023-06-15T06:23:17Z (GMT). No. of bitstreams: 0\n Previous issue date: 2023", "language": "en", "element": "description", "qualifier": "provenance", "schema": "dc"}, {"key": "dc.format.extent", "value": "43", "language": "", "element": "format", "qualifier": "extent", "schema": "dc"}, {"key": "dc.language.iso", "value": "fin", "language": null, "element": "language", "qualifier": "iso", "schema": "dc"}, {"key": "dc.rights", "value": "In Copyright", "language": null, "element": "rights", "qualifier": null, "schema": "dc"}, {"key": "dc.subject.other", "value": "ORM", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "NoSQL", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.title", "value": "Tietokantojen ja ORM:n suorituskykyvertailu eri ohjelmistokehyksiss\u00e4", "language": "", "element": "title", "qualifier": null, "schema": "dc"}, {"key": "dc.type", "value": "master thesis", "language": null, "element": "type", "qualifier": null, "schema": "dc"}, {"key": "dc.identifier.urn", "value": "URN:NBN:fi:jyu-202306153848", "language": "", "element": "identifier", "qualifier": "urn", "schema": "dc"}, {"key": "dc.type.ontasot", "value": "Master\u2019s thesis", "language": "en", "element": "type", "qualifier": "ontasot", "schema": "dc"}, {"key": "dc.type.ontasot", "value": "Pro gradu -tutkielma", "language": "fi", "element": "type", "qualifier": "ontasot", "schema": "dc"}, {"key": "dc.contributor.faculty", "value": "Informaatioteknologian tiedekunta", "language": "fi", "element": "contributor", "qualifier": "faculty", "schema": "dc"}, {"key": "dc.contributor.faculty", "value": "Faculty of Information Technology", "language": "en", "element": "contributor", "qualifier": "faculty", "schema": "dc"}, {"key": "dc.contributor.department", "value": "Informaatioteknologia", "language": "fi", "element": "contributor", "qualifier": "department", "schema": "dc"}, {"key": "dc.contributor.department", "value": "Information Technology", "language": "en", "element": "contributor", "qualifier": "department", "schema": "dc"}, {"key": "dc.contributor.organization", "value": "Jyv\u00e4skyl\u00e4n yliopisto", "language": "fi", "element": "contributor", "qualifier": "organization", "schema": "dc"}, {"key": "dc.contributor.organization", "value": "University of Jyv\u00e4skyl\u00e4", "language": "en", "element": "contributor", "qualifier": "organization", "schema": "dc"}, {"key": "dc.subject.discipline", "value": "Tietotekniikka", "language": "fi", "element": "subject", "qualifier": "discipline", "schema": "dc"}, {"key": "dc.subject.discipline", "value": "Mathematical Information Technology", "language": "en", "element": "subject", "qualifier": "discipline", "schema": "dc"}, {"key": "yvv.contractresearch.funding", "value": "0", "language": "", "element": "contractresearch", "qualifier": "funding", "schema": "yvv"}, {"key": "dc.type.coar", "value": "http://purl.org/coar/resource_type/c_bdcc", "language": null, "element": "type", "qualifier": "coar", "schema": "dc"}, {"key": "dc.rights.copyright", "value": "\u00a9 The Author(s)", "language": null, "element": "rights", "qualifier": "copyright", "schema": "dc"}, {"key": "dc.rights.accesslevel", "value": "restrictedAccess", "language": null, "element": "rights", "qualifier": "accesslevel", "schema": "dc"}, {"key": "dc.type.publication", "value": "masterThesis", "language": null, "element": "type", "qualifier": "publication", "schema": "dc"}, {"key": "dc.subject.oppiainekoodi", "value": "602", "language": "", "element": "subject", "qualifier": "oppiainekoodi", "schema": "dc"}, {"key": "dc.subject.yso", "value": "sovelluskehykset", "language": null, "element": "subject", "qualifier": "yso", "schema": "dc"}, {"key": "dc.subject.yso", "value": "tietokannat", "language": null, "element": "subject", "qualifier": "yso", "schema": "dc"}, {"key": "dc.subject.yso", "value": "suorituskyky", "language": null, "element": "subject", "qualifier": "yso", "schema": "dc"}, {"key": "dc.subject.yso", "value": "SQL", "language": null, "element": "subject", "qualifier": "yso", "schema": "dc"}, {"key": "dc.rights.url", "value": "https://rightsstatements.org/page/InC/1.0/", "language": null, "element": "rights", "qualifier": "url", "schema": "dc"}, {"key": "dc.rights.accessrights", "value": "The author has not given permission to make the work publicly available electronically. Therefore the material can be read only at the archival workstation at Jyv\u00e4skyl\u00e4 University Library (https://kirjasto.jyu.fi/collections/archival-workstation).", "language": "en", "element": "rights", "qualifier": "accessrights", "schema": "dc"}, {"key": "dc.rights.accessrights", "value": "Tekij\u00e4 ei ole antanut lupaa avoimeen julkaisuun, joten aineisto on luettavissa vain Jyv\u00e4skyl\u00e4n yliopiston kirjaston arkistoty\u00f6semalta. Ks. https://kirjasto.jyu.fi/kokoelmat/arkistotyoasema..", "language": "fi", "element": "rights", "qualifier": "accessrights", "schema": "dc"}]
id jyx.123456789_87787
language fin
last_indexed 2025-02-18T10:55:34Z
main_date 2023-01-01T00:00:00Z
main_date_str 2023
publishDate 2023
record_format qdc
source_str_mv jyx
spellingShingle Södergård, Alexander Tietokantojen ja ORM:n suorituskykyvertailu eri ohjelmistokehyksissä ORM NoSQL Tietotekniikka Mathematical Information Technology 602 sovelluskehykset tietokannat suorituskyky SQL
title Tietokantojen ja ORM:n suorituskykyvertailu eri ohjelmistokehyksissä
title_full Tietokantojen ja ORM:n suorituskykyvertailu eri ohjelmistokehyksissä
title_fullStr Tietokantojen ja ORM:n suorituskykyvertailu eri ohjelmistokehyksissä Tietokantojen ja ORM:n suorituskykyvertailu eri ohjelmistokehyksissä
title_full_unstemmed Tietokantojen ja ORM:n suorituskykyvertailu eri ohjelmistokehyksissä Tietokantojen ja ORM:n suorituskykyvertailu eri ohjelmistokehyksissä
title_short Tietokantojen ja ORM:n suorituskykyvertailu eri ohjelmistokehyksissä
title_sort tietokantojen ja orm n suorituskykyvertailu eri ohjelmistokehyksissä
title_txtP Tietokantojen ja ORM:n suorituskykyvertailu eri ohjelmistokehyksissä
topic ORM NoSQL Tietotekniikka Mathematical Information Technology 602 sovelluskehykset tietokannat suorituskyky SQL
topic_facet 602 Mathematical Information Technology NoSQL ORM SQL Tietotekniikka sovelluskehykset suorituskyky tietokannat
url https://jyx.jyu.fi/handle/123456789/87787 http://www.urn.fi/URN:NBN:fi:jyu-202306153848
work_keys_str_mv AT södergårdalexander tietokantojenjaormnsuorituskykyvertailueriohjelmistokehyksissä