| 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 |
|---|
| </sxh> | </sxh> |
| __**Retour :**__ | __**Retour :**__ |
| <sxh> | <sxh;gutter:false> |
| IdArticle | Titre | Article | Score | IdArticle | Titre | Article | Score |
| 7 | Federated | Le moteur Federated permet de déporter… | 0,21985759722453 | 7 | Federated | Le moteur Federated permet de déporter… | 0,21985759722453 |
| 6 | Exemple | Ce type de table est assez particulier… | 0,15944281721118 | 6 | Exemple | Ce type de table est assez particulier… | 0,15944281721118 |
| * 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. |
| </WRAP> | </WRAP> |
| Choix d'organisation | ==== Choix d'organisation ==== |
| 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) | * petites tables (occupation de peu de pages) |
| requêtes manipulant des tables entières | * requêtes manipulant des tables entières |
| pour recupérer de l'espace dû à des DELETE | * pour recupérer de l'espace dû à des DELETE |
| 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 | * traitement de table entière |
| joints naturels (systématique sans restriction) | * 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 | * grosse table à croissance rapide |
| BTREE | |
| | === BTREE === |
| Conditions favorables : | Conditions favorables : |
| |
| besoin de pattern matching + | * besoin de pattern matching + |
| la table grossit vite | * la table grossit vite |
| table trop grosse pour être souvent réorganisée (Modify) | * table trop grosse pour être souvent réorganisée (Modify) |
| joints de tables entières | * joints de tables entières |
| Eviter : | Eviter : |
| |
| table statique ou à croissance faible | * table statique ou à croissance faible |
| large clé | * large clé |
| si ajout de nouveaux tuples seulement en fin de table (plus grand risque de DEAD LOCK) | * 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/pattern matching + + – – | ^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/pattern matching | + | + | – | – | |
| 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) | * Tests sur petits (100) et + gros volumes de données (10 000) |
| sur les 6 primitives de base | * sur les 6 primitives de base |
| Etablir un protocole de test (nb de requêtes, concurrency level, méthode/outils utilisés) | |
| 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/outils utilisés) |
| Pour chaque volume (X2) | * Créer les bases de données : |
| Incorporer les données avec GenerateData | * Pour chaque moteur (X3) |
| Mettre en place le protocole établi | * Pour chaque volume (X2) |
| Réaliser les tests | * Incorporer les données avec GenerateData |
| Présenter les résultats | * Mettre en place le protocole établi |
| | * Réaliser les tests |
| | * Présenter les résultats |
| | </WRAP> |