MariaDB: Porovnání verzí
Z Poznámkový blok
(→Přidání všech práv uživateli) |
(→Cardinality) |
||
| Řádka 54: | Řádka 54: | ||
FlUSH PRIVILEGES; | FlUSH PRIVILEGES; | ||
=== Cardinality === | === Cardinality === | ||
| + | Účelem je kontrola tabulek, aby nebylo potřeba provádět analyza na cele databazi. | ||
| + | |||
| + | 1.Prvně zjistíme, které tabulky mají cardinality "0" (%s = nazev_databaze). | ||
| + | SELECT table_name FROM information_schema.statistics WHERE cardinality=0 AND table_schema='%s' GROUP BY table_name; | ||
| + | |||
| + | 2.Z výše získaného seznamu zkontrolujeme tabulky, zda count(*) je větčí jak 0 | ||
| + | SELECT count(*) FROM 'tabulka' | ||
| + | |||
| + | 3. U těch, kde je předchozí hodnota větčí 0, provedeme opravu: | ||
| + | ANALYZE table 'tabulka' | ||
Aktuální verze z 12. 5. 2025, 14:09
Obsah
Základní příkazy pro práci s MariaDB (MySQL)
Připojení na MariaDB v docker
docker exec -ti mariadb mariadb -u root -p
Database
Zobrazení Database
SHOW DATABASES;
Vytvoření Database
CREATE DATABASE new_database; FlUSH PRIVILEGES;
Připojení na Database
USE new_database;
Smazaní Database
DROP DATABASE new_database; FlUSH PRIVILEGES;
Uživatel
Zobrazení uživatelů
SELECT User, Host, authentication_string FROM mysql.user;
Vytvoření uživatele
Adresa určuje odkud se může někdo přihlásit na uživatele, znak % určuje pro všechny
CREATE USER 'user'@'address' IDENTIFIED BY 'password'; FlUSH PRIVILEGES;
Změna hesla
ALTER USER 'user'@'address' IDENTIFIED BY 'MyNewPass'; FLUSH PRIVILEGES;
Změna práv na tabulku/y
Jde použít znak * pro povolení všecho, klidně i všech tabulek
GRANT ALL PRIVILEGES ON new_database.table TO 'user'@'address';
Smazání uživatele
DELETE FROM mysql.user WHERE user='<user>' AND host = 'adrress' FlUSH PRIVILEGES;
Ostatní
Promazání binlogu
x nahradit nenovější verzí
PURGE BINARY LOGS TO 'binlog.xxxxxx'; FlUSH PRIVILEGES;
Pár příkladů
Vytvoření uživatele pro všechny adresy
CREATE USER 'filip'@'%' IDENTIFIED BY 'heslo'; FlUSH PRIVILEGES;
Přidání všech práv uživateli
GRANT ALL PRIVILEGES ON *.* TO 'filip'@'%'; FlUSH PRIVILEGES;
Cardinality
Účelem je kontrola tabulek, aby nebylo potřeba provádět analyza na cele databazi.
1.Prvně zjistíme, které tabulky mají cardinality "0" (%s = nazev_databaze).
SELECT table_name FROM information_schema.statistics WHERE cardinality=0 AND table_schema='%s' GROUP BY table_name;
2.Z výše získaného seznamu zkontrolujeme tabulky, zda count(*) je větčí jak 0
SELECT count(*) FROM 'tabulka'
3. U těch, kde je předchozí hodnota větčí 0, provedeme opravu:
ANALYZE table 'tabulka'