Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
cnam:nfp107:seance8 [2023/04/22 16:13] – jcheron | cnam:nfp107:seance8 [2023/04/22 16:20] (Version actuelle) – jcheron | ||
---|---|---|---|
Ligne 178: | Ligne 178: | ||
</ | </ | ||
__**Retour :**__ | __**Retour :**__ | ||
- | < | + | <sxh; |
- | IdArticle | + | IdArticle |
7 | Federated | Le moteur Federated permet de déporter… | 7 | Federated | Le moteur Federated permet de déporter… | ||
6 | Exemple | 6 | Exemple | ||
Ligne 227: | Ligne 227: | ||
* Statistiques envoyées ne sont pas forcément précises : ce ne sont que des estimations. | * Statistiques envoyées ne sont pas forcément précises : ce ne sont que des estimations. | ||
</ | </ | ||
- | Choix d' | + | ==== Choix d' |
- | séquentiel (HEAP) | + | |
+ | === séquentiel (HEAP) | ||
Conditions favorables : | Conditions favorables : | ||
- | chargement de données dans la base | + | * chargement de données dans la base |
- | petites tables (occupation de peu de pages) | + | |
- | requêtes manipulant des tables entières | + | |
- | pour recupérer de l' | + | |
Eviter : | Eviter : | ||
+ | * accès à 1 ou plusieurs tuples | ||
+ | * grosses tables | ||
+ | |||
+ | === HASH === | ||
- | accès à 1 ou plusieurs tuples | ||
- | grosses tables | ||
- | HASH | ||
Conditions favorables : | Conditions favorables : | ||
- | recherche sur valeur exacte de clé (le plus rapide) | + | * recherche sur valeur exacte de clé (le plus rapide) |
Eviter : | Eviter : | ||
- | recherche sur pattern matching (partie de clé) | + | * recherche sur pattern matching (partie de clé) |
- | traitement de table entière | + | |
- | joints naturels (systématique sans restriction) | + | |
- | ISAM | + | |
+ | === ISAM === | ||
Conditions favorables : | Conditions favorables : | ||
+ | * requêtes nécessitant pattern matching ++ | ||
+ | * la table grossit lentement (peu de réorg.) | ||
+ | * clé large | ||
- | requêtes nécessitant pattern matching ++ | ||
- | la table grossit lentement (peu de réorg.) | ||
- | clé large | ||
Eviter : | Eviter : | ||
- | si recherche sur clé complète (→HASH) | + | * si recherche sur clé complète (→HASH) |
- | grosse table à croissance rapide | + | |
- | BTREE | + | |
+ | === BTREE === | ||
Conditions favorables : | Conditions favorables : | ||
- | besoin de pattern matching + | + | * besoin de pattern matching + |
- | la table grossit vite | + | |
- | table trop grosse pour être souvent réorganisée (Modify) | + | |
- | joints de tables entières | + | |
Eviter : | Eviter : | ||
- | table statique ou à croissance faible | + | * table statique ou à croissance faible |
- | large clé | + | |
- | si ajout de nouveaux tuples seulement en fin de table (plus grand risque de DEAD LOCK) | + | |
- | Résumé | + | |
- | Fonctionnalité B-Tree ISAM Hash Heap | + | |
- | chargement de table ++ – – + | + | === Résumé |
- | recherche sur clé complète ++ ++ + – | + | |
- | intervalles/ | + | ^Fonctionnalité ^B-Tree ^ISAM ^Hash ^Heap ^ |
- | recherches séquentielles ++ ++ - + | + | |chargement de table | ++ | – | – | + | |
- | recherche sur clé partielle + + – – | + | |recherche sur clé complète |
- | accés à données triées + – – – | + | |intervalles/ |
- | joints sur larges tables + + – – | + | |recherches séquentielles |
- | index croît comme table + – – – | + | |recherche sur clé partielle |
- | très petite table + – – – | + | |accés à données triées |
- | très grande table + – – – | + | |joints sur larges tables |
+ | |index croît comme table | + | – | – | – | | ||
+ | |très petite table | + | – | – | – | | ||
+ | |très grande table | + | – | – | – | | ||
Source : Bernard Espinasse | Source : Bernard Espinasse | ||
- | Application | + | ==== Application |
Objectif : | Objectif : | ||
- | Benchmark des moteurs de stockage MySQL (InnoDB, MyISAM) et PostgreSQL. | + | * Benchmark des moteurs de stockage MySQL (InnoDB, MyISAM) et PostgreSQL. |
- | Tests sur petits (100) et + gros volumes de données (10 000) | + | |
- | sur les 6 primitives de base | + | |
- | Etablir un protocole de test (nb de requêtes, concurrency level, méthode/ | + | |
- | Créer les bases de données : | + | <WRAP todo> |
- | Pour chaque moteur (X3) | + | * Etablir un protocole de test (nb de requêtes, concurrency level, méthode/ |
- | Pour chaque volume (X2) | + | |
- | Incorporer les données avec GenerateData | + | |
- | Mettre en place le protocole établi | + | |
- | Réaliser les tests | + | |
- | Présenter les résultats | + | |
+ | | ||
+ | | ||
+ | </ |