Condivisione della tecnologia

Funzioni comuni di MySQL

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Essendo un sistema di gestione di database relazionali ampiamente utilizzato, MySQL offre funzionalità avanzate per supportare vari tipi di applicazioni. Di seguito sono riportate alcune funzioni comuni di MySQL:

Gestione del database

1. Crea e gestisci database e tabelle:

MySQL fornisce istruzioni SQL flessibili per creare, modificare ed eliminare database e le relative tabelle.

CREATE DATABASE mydatabase;
CREATE TABLE mytable (id INT PRIMARY KEY, name VARCHAR(50));
  • 1
  • 2

2. Inserimento, aggiornamento e cancellazione dei dati:

Utilizzare istruzioni SQL standard per la manipolazione dei dati.

INSERT INTO mytable (id, name) VALUES (1, 'Alice');
UPDATE mytable SET name = 'Bob' WHERE id = 1;
DELETE FROM mytable WHERE id = 1;
  • 1
  • 2
  • 3

3. Interrogare i dati:

Recupero dei dati tramite istruzioni SELECT, inclusi JOIN complessi, sottoquery, ordinamento e raggruppamento.

SELECT * FROM mytable WHERE name = 'Alice';
SELECT name, COUNT(*) FROM mytable GROUP BY name;
  • 1
  • 2

Sicurezza e autorizzazioni

1. Gestione utenti e controllo dei permessi:

MySQL fornisce un controllo capillare delle autorizzazioni, consentendo agli amministratori di assegnare autorizzazioni diverse a utenti diversi.

CREATE USER 'user1'@'localhost' IDENTIFIED BY 'password';
GRANT SELECT, INSERT ON mydatabase.* TO 'user1'@'localhost';
  • 1
  • 2

2. Gestione dei ruoli:

A partire da MySQL 8.0, è supportata la gestione dei ruoli, semplificando l'assegnazione e la gestione dei permessi.

CREATE ROLE 'developer';
GRANT SELECT, INSERT, UPDATE ON mydatabase.* TO 'developer';
GRANT 'developer' TO 'user1'@'localhost';
  • 1
  • 2
  • 3

Ottimizzazione delle prestazioni

1. Indice:

MySQL supporta più tipi di indice, come l'indice B-Tree, l'indice full-text e l'indice spaziale, per migliorare le prestazioni delle query.

CREATE INDEX idx_name ON mytable(name);
  • 1

2. Interroga la cache:

MySQL fornisce una funzione di memorizzazione nella cache delle query, che può memorizzare nella cache i risultati delle query e migliorare l'efficienza di esecuzione della stessa query (rimossa in MySQL 8.0).

3. Schema delle prestazioni:

Viene fornita una serie di tabelle e strumenti per monitorare e analizzare le prestazioni del database.

SELECT * FROM performance_schema.events_statements_summary_by_digest;
  • 1

Replica e alta disponibilità

1. Replica master-slave:

MySQL supporta la replica master-slave per la distribuzione dei dati e l'elevata disponibilità.

CHANGE MASTER TO MASTER_HOST='master_host', MASTER_USER='replication_user', MASTER_PASSWORD='password';
START SLAVE;
  • 1
  • 2

2. Cluster (cluster MySQL InnoDB):

Fornire soluzioni cluster di database ad alta disponibilità per garantire elevata disponibilità e coerenza dei dati.

Backup e ripristino dei dati

1. Backup logico:

utilizzo mysqldump Strumenti per il backup logico.

mysqldump -u root -p mydatabase > mydatabase.sql
  • 1

2. Backup fisico:

utilizzo mysqlbackup(MySQL Enterprise Backup) o xtrabackup(Percona XtraBackup) per il backup fisico.

Altre funzionalità avanzate

1. Attivazione:

Codice SQL che viene eseguito automaticamente quando si verificano eventi specifici (come INSERT, UPDATE, DELETE) su una tabella specifica.

CREATE TRIGGER mytrigger BEFORE INSERT ON mytable FOR EACH ROW SET NEW.name = UPPER(NEW.name);
  • 1

2. Procedure e funzioni memorizzate:

Incapsula una serie di istruzioni SQL in modo che possano essere chiamate più volte per migliorare la riusabilità e la manutenibilità del codice.

CREATE PROCEDURE myprocedure(IN param1 INT)
BEGIN
  SELECT * FROM mytable WHERE id = param1;
END;
  • 1
  • 2
  • 3
  • 4

3. Visualizza:

Crea tabelle virtuali per query complesse per migliorare la leggibilità e la riusabilità delle query.

CREATE VIEW myview AS SELECT name FROM mytable WHERE id > 10;
  • 1

Attraverso queste funzioni, MySQL fornisce un potente set di strumenti per soddisfare le esigenze di vari scenari applicativi.