From 74b9d4ec847eff0ea55b4855599ba07a39c1bcf3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tondon=20C=C3=A9sar?= <pilou.tondon@hotmail.fr>
Date: Wed, 4 Mar 2020 10:46:27 +0100
Subject: [PATCH] suppression des dossiers seance 2 et 3 car branch seance1
---
Seance2/relation.txt | 71 --------------------------------
Seance3/preparation seance 3.txt | 64 ----------------------------
2 files changed, 135 deletions(-)
delete mode 100644 Seance2/relation.txt
delete mode 100644 Seance3/preparation seance 3.txt
diff --git a/Seance2/relation.txt b/Seance2/relation.txt
deleted file mode 100644
index 3b20083..0000000
--- a/Seance2/relation.txt
+++ /dev/null
@@ -1,71 +0,0 @@
-1)
-Categorie {
- -id PK,
- -nom,
- -descr
-};
-
-Annonce {
- -id PK,
- -titre,
- -date,
- -texte
-};
-
-Photo {
- -id PK,
- -file,
- -date,
- -taille_octet,
- -idPhoto # clef etrangère
-};
-
-Annonce_Categorie {
- idCategorie,
- idAnnonce
-}
-2)
-Dans le modèle Photo, il faut définir la méthode :
-public function annonce() {
- return $this->belongsTo('modele\Annonce','id_annonce');
-}
-
-Dans le modèle Annonce,il faut définir les méthodes :
-public function photo() {
- return $this->hasMany('modele\Photo','id_photo');
-}
-
-public function categorie() {
- return $this->hasMany('modele\Categorie','id_categorie');
-}
-
-Dans le modèle Categorie, il faut définir la méthide :
-public function annonce() {
- return $this->hasMany('modele\Annonce','id_annonce');
-}
-
-3)
-3.1)
- $a = Annonce::find(22);
- $photos = $a->photo()->get();
-3.2)
- $a = Annonce::find(22);
- $photos = $a->photo()
- ->where('taille_octet','>','100000')
- ->get();
-3.3)
- $a = Annonce::where('count($photos = Annonce->with('photo')->get()','>','3');
-3.4)
- $a = Annonce::$photos = Annonce->with('photo')->where('taille_octet','>','100000')->get();
-4)
- $photo = new Photo();
- $photo->date='26/02/2020';
- $annonce22 = Annonce::find(22);
- $annonce22->photo()->save($photo);
-5)
- $photo = new Photo();
- $photo->date='26/02/2020';
- $annonce22 = Annonce::find(22);
- $annonce22->photo()->save($photo);
- $annonce22->categorie()->attach([42,73]);
-
diff --git a/Seance3/preparation seance 3.txt b/Seance3/preparation seance 3.txt
deleted file mode 100644
index f649383..0000000
--- a/Seance3/preparation seance 3.txt
+++ /dev/null
@@ -1,64 +0,0 @@
-
-Partie 1 : mesurer les performances et utiliser des index
-
-1. Code pour mesurer le temps d'exécution
-
-<?php
-$debut = microtime(true);
-/**
-* Suite d'instruction ...
-*/
-$fin = microtime(true);
-
-$dureeExecution = $fin - $debut;
-
-echo "L'exécution de ce code a duré $dureeExecution secondes\n";
-?>
-
-2. Intérêt d'index :
-
-Les index sont utilisés pour rechercher rapidement des lignes avec des valeurs de
-colonne spécifiques. Sans index, MySQL doit commencer par la première ligne, puis
-parcourir toute la table pour trouver les lignes pertinentes. Plus la table est grande,
-plus cela coûte. Si la table a un index pour les colonnes en question, MySQL peut
-rapidement déterminer la position à rechercher au milieu du fichier de données sans avoir à
-regarder toutes les données. Ceci est beaucoup plus rapide que la lecture séquentielle
-de chaque ligne.
-
-Principe de fonctionnement :
-
-- Pour trouver rapidement les lignes correspondant à une clause WHERE.
-- Pour éliminer les lignes de la considération. S'il y a un choix entre plusieurs index, MySQL
- utilise normalement l'index qui trouve le plus petit nombre de lignes.
-- Par exemple, si vous avez un index à trois colonnes sur (col1, col2, col3), vous avez
- indexé les capacités de recherche sur (col1), (col1, col2) et (col1, col2, col3).
-- Pour récupérer des lignes à partir d'autres tables lors de l'exécution de jointures.
- MySQL peut utiliser les index des colonnes plus efficacement s'ils sont déclarés de même type
- et de même taille. Dans ce contexte, VARCHAR et CHAR sont considérés comme identiques s'ils sont
- déclarés comme ayant la même taille. Par exemple, VARCHAR (10) et CHAR (10) ont la même taille,
- mais VARCHAR (10) et CHAR (15) ne le sont pas.
-- Pour les comparaisons entre les colonnes de chaînes non binaires, les deux colonnes doivent
- utiliser le même jeu de caractères.
-- La comparaison de colonnes différentes peut empêcher l'utilisation d'index si les valeurs ne
- peuvent pas être comparées directement sans conversion. Pour une valeur donnée telle que 1 dans la
- colonne numérique, il peut être égal à n'importe quel nombre de valeurs dans la colonne chaîne comme
- «1», «1», «00001» ou «01 .e1». Cela exclut l'utilisation de tout index pour la colonne de chaîne.
-- Pour trouver la valeur MIN () ou MAX () pour une colonne indexée spécifique key_col. Ceci est
- optimisé par un préprocesseur qui vérifie si vous utilisez WHERE key_part_N = constant sur toutes les
- parties clés qui se produisent avant key_col dans l'index. Dans ce cas, MySQL effectue une recherche
- de clé unique pour chaque expression MIN () ou MAX () et la remplace par une constante. Si toutes les
- expressions sont remplacées par des constantes, la requête retourne immédiatement.
-
-Partie 2 : observer l'orm, améliorer les performances avec des chargements liés
-
-1. Structure du log de requêtes dans Eloquent
-
-
-
-2. Le problème des N+1 query
-
-Le problème est que chaque requête a un peu de surcharge. Il est beaucoup plus rapide d'émettre 1 requête
-qui renvoie 100 résultats que d'émettre 100 requêtes qui renvoient chacune 1 résultat. Cela est
- particulièrement vrai si votre base de données se trouve sur une machine différente qui est, disons, à 1-2
- ms du réseau. Dans ce cas, l'émission de 100 requêtes en série a un coût minimum de 100-200 ms, même si MySQL
- peut les satisfaire instantanément.
\ No newline at end of file
--
GitLab