Services webmasters
Partenaires
Jeux concours gratuits
 
Ce qui est prévu pour la version 4.1
<<<
Ce qui doit être fait dans un futur proche Ce qui est prévu pour plus tard
>>>

1.8 Les évolutions de MySQL (la liste des tâches)
1 Informations générales
 Manuel de Référence MySQL 4.1 : Version Française

Ce que devrait inclure la version 4.0
Ce qui est prévu pour la version 4.1
->Ce qui doit être fait dans un futur proche
Ce qui est prévu pour plus tard
Ce qui n'est pas prévu

1.8.3 Ce qui doit être fait dans un futur proche

  • Limiter le nombre de threads qui travaillent à la restauration d'une table MyISAM en même temps.
  • Changer le code de la commande INSERT ... SELECT pour supporter les insertions concurrentes, en option.
  • Retourner le type original des champs avec la commande SELECT MIN(column) ... GROUP BY .
  • Support des résultats multiples.
  • Rendre possible la spécification de long_query_time avec une granularité en microsecondes.
  • Lier le code de myisampack dans le serveur.
  • Porter le code de MySQL sur QNX.
  • Porter le code de MySQL sur BeOS.
  • Porter le code du client MySQL sur LynxOS.
  • Ajouter un buffer de clés temporaires durant les commandes INSERT/DELETE/UPDATE de manière a le restaurer proprement si le fichier d'index se remplit.
  • Si vous exécutez une commande ALTER TABLE sur une table qui est liée symboliquement sur un autre disque, les tables temporaires devraient être créées dans ce disque.
  • Implémenter un type DATE/DATETIME qui gère les données de fuseaux horaires correctement, afin de simplifier la gestion de ces derniers.
  • FreeBSD et MIT-pthreads; est-ce que les threads en veille consomment du temps processeur ?
  • Vérifier si les threads verrouillés consomment du temps processeur.
  • Corriger le script de configure pour que l'on puisse compiler toutes les librairies (comme MyISAM ) sans les threads.
  • Ajouter une option pour vider périodiquement les pages de clés, avec des clés retardées si on ne les a pas utilisées depuis un bon moment.
  • Permettre les jointures sur des parties de clés (problème d'optimisation).
  • INSERT SQL_CONCURRENT et mysqld --concurrent-insert pourraient réaliser des insertions concurrentes à la fin du fichier, si le fichier est verrouillé en lecture.
  • Les curseurs coté serveur.
  • Vérifier si lockd fonctionne avec les noyaux moderne. Si ce n'est pas le cas, nous devons corriger lockd ! Pour tester cela, démarrez mysqld avec l'option --enable-locking et lancez différents tests de fork*. Si cela fonctionne, il ne doit y avoir aucune erreur.
  • Permettre des variables SQL dans la clause LIMIT , comme LIMIT @a,@b .
  • Permettre les modifications de variables dans les commandes UPDATE . Par exemple : UPDATE TABLE foo SET @a=a+b,a=@a, b=@a+c .
  • Changer les modifications de variables utilisateur pour que l'on puisse les utiliser avec la clause GROUP BY , comme ceci : SELECT id, @a:=COUNT(*), SUM(sum_col)/@a FROM nom_de_table GROUP BY id .
  • Ne pas utiliser de valeur par défaut DEFAULT automatiquement. Générer une erreur lorsque la commande INSERT ne contient pas la valeur d'une colonne qui n'a pas de valeur par DEFAULT .
  • Corriger libmysql.c pour permettre les commandes mysql_query() dans une ligne sans lire les résultats, ou afficher une erreur lorsque l'on tente de le faire.
  • Vérifier pourquoi MIT-pthreads ctime() ne fonctionne pas sur certains systèmes FreeBSD.
  • Ajouter une option IMAGE à la commande LOAD DATA INFILE pour ne pas modifier les colonnes de type TIMESTAMP et AUTO_INCREMENT .
  • Ajouter la syntaxe LOAD DATE INFILE ... UPDATE .
    • Pour les tables avec clés primaires, si les données ne contiennent pas de clé primaire, les entrées qui correspondent à cette clé primaire sont modifiées avec le reste des colonnes. Cependant, les colonnes qui manquent dans les données entrantes sont ignorées.
    • Pour les tables avec des clés primaires à qui il manque une partie de la clé dans les données entrantes, ou si il n'y a pas la clé primaire, les données sont traitées comme pour LOAD DATA INFILE ... REPLACE INTO .
  • Faire que la commande LOAD DATA INFILE comprenne ceci :
    
    LOAD DATA INFILE 'file_name.txt' INTO TABLE tbl_name
         TEXT_FIELDS (text_field1, text_field2, text_field3)
         SET table_field1=CONCAT(text_field1, text_field2),
             table_field3=23
         IGNORE text_field3
    Ceci peut être utilisé pour sauter les colonnes de texte supplémentaire dans le fichier, ou pour modifier des colonnes en se basant sur les données lues.
  • LOAD DATA INFILE 'file_name' INTO TABLE 'nom_de_table' ERRORS TO err_nom_de_table . Cette commande enregistrera les erreurs et les alertes dans la table err_nom_de_table . Cette table aura la structure suivante :
    
    line_number    - numéro de ligne dans le fichier de données
    error_message  - Le message d'erreur ou d'alerte
    Ou peut être
    data_line      - La ligne du fichier de données
  • Affichage automatique de mysql vers Netscape.
  • LOCK DATABASES (avec différentes options).
  • Fonctions : ADD_TO_SET(value,set) et REMOVE_FROM_SET(value,set).
  • Ajouter les syntaxes t1 JOIN t2 ON ... et t1 JOIN t2 USING ... Actuellement, vous ne pouvez utiliser cette syntaxe qu'avec LEFT JOIN .
  • Bien plus de valeurs dans la commande show status . Les lignes lues et modifiées. Les sélections sur une table et les jointures. Le nombre moyen de table dans une sélection. Le nombre de clause ORDER BY et GROUP BY dans les requêtes.
  • Si vous interrompez mysql au beau milieu d'une requête, vous devriez ouvrir une autre connexion, et tuer l'ancienne requête. Alternativement, une tentative de détection doit avoir lieu sur le serveur.
  • Ajouter un gestionnaire d'interface pour les informations de tables, de manière à pouvoir l'utiliser comme une table système. Cela serait un peu lent si vous demandez toutes les informations sur toutes les tables, mais c'est très souple. SHOW INFO FROM tbl_name pour les informations simples de tables devrait être implémenté.
  • NATURAL JOIN .
  • Permettre la commande SELECT a FROM crash_me LEFT JOIN crash_me2 USING (a) ; dans ce cas, a est supposé provenir de la table crash_me .
  • Corriger le code pour que ON et USING fonctionne avec les jointures de type JOIN .
  • Commande Oracle CONNECT BY PRIOR ... pour rechercher les hiérarchies.
  • mysqladmin copy database new-database ; requiert la commande COPY dans mysqld .
  • La liste des processus devrait afficher le nombre de requêtes et de threads.
  • SHOW HOSTS doit afficher les informations sur les noms d'hôte en cache.
  • Options de DELETE et REPLACE dans la commande UPDATE (cela effacerait des lignes lorsque une clé voit un doublon surgir durant la mise à jour).
  • Modifier le format de DATETIME pour stocker les fractions de secondes.
  • Ajout de tous les types de données qui manquent de ANSI92 et ODBC 3.0.
  • Changer les noms des tables de chaîne vide en NULL pour les colonnes calculées.
  • Ne pas utiliser Item_copy_string sur les valeurs numériques pour éviter la conversion nombre -> chaîne -> nombre dans le cas de : SELECT COUNT(*)*(id+0) FROM nom_de_table GROUP BY id
  • Rendre possible l'utilisation de la nouvelle librairie d'expression régulière GNU en lieu et place de celle qui a actuellement cours (la librairie GNU devrait être bien plus rapide).
  • Modifier la commande ALTER TABLE pour qu'elle n'interrompe pas les clients qui exécutent des commandes INSERT DELAYED .
  • Corriger le code pour que lorsque les colonnes sont référencées dans une commande UPDATE , elle contiennent les anciennes valeurs, et non pas les nouvelles.
  • Ajouter la simulation de pread() / pwrite() sous Windows pour permettre les insertions concurrentes.
  • Un analyseur de fichiers de log, qui pourrait traiter les données et indiquer quelles tables sont les plus souvent utilisées, combien de jointures sont faites, etc. Cela aidera les utilisateurs à identifier les points sensibles dans leur conception de bases de données.
  • Ajouter SUM(DISTINCT) .
  • Ajouter les fonctions de groupement ANY() , EVERY() et SOME() . En ANSI SQL, elles ne fonctionnent que sur les colonnes de type booléen, mais nous pouvons les étendre pour qu'elles fonctionnent sur n'importe quelle type de colonne ou d'expression en appliquant la conversion valeur == 0 -> FALSE et valeur <> 0 -> TRUE.
  • Faire que le type de MAX(column) soit le même que le type de la colonne utilisé. Par exemple :
    
    mysql> CREATE TABLE t1 (a DATE);
    mysql> INSERT INTO t1 VALUES (NOW());
    mysql> CREATE TABLE t2 SELECT MAX(a) FROM t1;
    mysql> SHOW COLUMNS FROM t2;
  • Inventer une syntaxe pratique pour une commande qui va modifier avec UPDATE une ligne si elle existe, et sinon, faire un insertion INSERT si cette ligne n'existe pas. (Comme REPLACE le fait avec INSERT / DELETE ).

<< Ce qui doit être fait dans un futur proche >>
Ce qui est prévu pour la version 4.1 Les évolutions de MySQL (la liste des tâches) Ce qui est prévu pour plus tard
Services webmasters
Les manuels
 
CoursPHP.com - Reproduction interdite -