MySQL
SQLVerdens mest populære open source relationelle databasestyringssystem.
Beskrivelse
MySQL er en robust, skalerbar og højtydende relationel database der har været industristandard siden 1995. Udviklet oprindeligt af MySQL AB (nu ejet af Oracle), bruges den af giganter som Facebook, Twitter, YouTube og Wikipedia. MySQL følger ACID-principper og understøtter komplekse forespørgsler, joins, transaktioner, views, lagrede procedurer og triggere. Den kommer med flere lagringsmotorer hvor InnoDB er standard og giver transaktionsunderstøttelse og fremmednøgler, mens MyISAM er hurtigere til læsetunge arbejdsbyrder. MySQL er særligt populær i LAMP-stakken (Linux, Apache, MySQL, PHP) og er kendt for sin pålidelighed, brugervenlighed og stærke community-støtte. Version 8.0 introducerede vinduesfunktioner, Common Table Expressions (CTE'er) og JSON-understøttelse, hvilket gjorde den endnu mere kraftfuld til moderne applikationer.
Features
- •ACID-kompatible transaktioner
- •Replikering og høj tilgængelighed
- •Partitionering for store datasæt
- •Fuldtekstsøgning
- •JSON-dokumentlagring
- •Lagrede procedurer og triggere
- •Flere lagringsmotorer
Query Eksempel
-- Opret database og tabel
CREATE DATABASE webshop;
USE webshop;
CREATE TABLE customers (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(100) UNIQUE NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE orders (
id INT AUTO_INCREMENT PRIMARY KEY,
customer_id INT,
total_amount DECIMAL(10, 2),
order_date DATE,
FOREIGN KEY (customer_id) REFERENCES customers(id)
);
-- Indsæt data
INSERT INTO customers (name, email)
VALUES ('Peter Hansen', 'peter@email.dk');
-- Join-forespørgsel
SELECT
c.name,
c.email,
COUNT(o.id) as order_count,
SUM(o.total_amount) as total_spent
FROM customers c
LEFT JOIN orders o ON c.id = o.customer_id
GROUP BY c.id
HAVING total_spent > 1000
ORDER BY total_spent DESC;Anvendelsesområder
- •Webapplikationer og indholdsstyringssystemer
- •E-handelsplatforme med transaktioner
- •Data warehousing og analyser
- •Logning og overvågningssystemer
- •Spilleranglister og brugerdata
Fordele
- ✓Gratis og open source
- ✓Enormt community og ressourcer
- ✓Høj ydeevne til læsetunge arbejdsbyrder
- ✓Let at lære og bruge
- ✓Fremragende dokumentation
Ulemper
- ✗Begrænset skalering sammenlignet med NoSQL
- ✗Nogle enterprise-funktioner kun i betalt version
- ✗Færre avancerede funktioner end PostgreSQL
- ✗Oracle-ejerskab bekymrer nogle
- ✗Kompleks konfiguration ved høj trafik
Bedst til
- →Traditionelle webapplikationer
- →Struktureret data med klare relationer
- →OLTP (Online Transaction Processing)
- →Små til mellemstore applikationer
- →WordPress, Drupal og andre CMS
Ikke anbefalet til
- ⚠Meget komplekse forespørgsler (brug PostgreSQL)
- ⚠Massiv horisontal skalering (brug NoSQL)
- ⚠Realtidsanalyser på big data
- ⚠Dokumentorienterede data (brug MongoDB)
- ⚠Tidsseriedata (brug InfluxDB)