MySQL
SQLVerdens mest populære open-source relationel database management system.
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 queries, joins, transactions, views, stored procedures og triggers. Den kommer med flere storage engines hvor InnoDB er standard og giver transaction support og foreign keys, mens MyISAM er hurtigere til read-heavy workloads. MySQL er særligt populær i LAMP stack (Linux, Apache, MySQL, PHP) og er kendt for sin pålidelighed, brugervenlighed og stærke community support. Version 8.0 introducerede Window Functions, Common Table Expressions (CTEs) og JSON support, hvilket gjorde den endnu mere kraftfuld til moderne applikationer.
Features
- •ACID compliant transactions
- •Replication og high availability
- •Partitioning for store datasets
- •Full-text search capabilities
- •JSON document storage
- •Stored procedures og triggers
- •Multiple storage engines
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 query
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
- •Web applikationer og content management systems
- •E-commerce platforme med transaktioner
- •Data warehousing og analytics
- •Logging og monitoring systemer
- •Gaming leaderboards og user data
Fordele
- ✓Gratis og open-source
- ✓Enorm community og ressourcer
- ✓Høj performance til read-heavy workloads
- ✓Let at lære og bruge
- ✓Excellent dokumentation
Ulemper
- ✗Begrænset skalering sammenlignet med NoSQL
- ✗Nogle enterprise features kun i betalt version
- ✗Mindre advanced features end PostgreSQL
- ✗Oracle ejerskab bekymrer nogle
- ✗Kompleks konfiguration ved høj trafik
Bedst til
- →Traditionelle web applikationer
- →Struktureret data med klare relationer
- →OLTP (Online Transaction Processing)
- →Små til mellemstore applikationer
- →WordPress, Drupal og andre CMS
Ikke anbefalet til
- ⚠Meget komplekse queries (brug PostgreSQL)
- ⚠Massive horizontal scaling (brug NoSQL)
- ⚠Real-time analytics på big data
- ⚠Document-orienteret data (brug MongoDB)
- ⚠Time-series data (brug InfluxDB)