Tietokantojen ja ORM:n suorituskykyvertailu eri ohjelmistokehyksissä

Abstract
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.
Main Author
Format
Theses Master thesis
Published
2023
Subjects
The permanent address of the publication
https://urn.fi/URN:NBN:fi:jyu-202306153848Use this for linking
Language
Finnish
License
In Copyright
Tekijä ei ole antanut lupaa avoimeen julkaisuun, joten aineisto on luettavissa vain Jyväskylän yliopiston kirjaston arkistotyösemalta. Ks. https://kirjasto.jyu.fi/kokoelmat/arkistotyoasema..
Copyright© The Author(s)

Share