IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration MySQL Discussion :

Optimisation .ini de MySQL


Sujet :

Administration MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2004
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 6
    Par défaut Optimisation .ini de MySQL
    Bonjour,
    cela fait maintenant plusieurs jours que je me tire les cheveux pour essayer d'optimiser une configuration de MySQL. Je précise que je ne suis pas administrateur de BDD et que j'ai conscience que c'est vraiment un boulot spécifique!
    Maintenant, si une bonne âme pouvait jeter un coup d'œil sur la config
    La base de données est hébergée sur un Xeon 3,20 Gh sous windows 2003 serveur avec 2 Go de RAM.

    En espèrent que cela puisse aussi servir à d'autres
    Voici mon .ini :

    # CLIENT SECTION
    # ----------------------------------------------------------------------
    #
    # The following options will be read by MySQL client applications.
    # Note that only client applications shipped by MySQL are guaranteed
    # to read this section. If you want your own MySQL client program to
    # honor these values, you need to specify it as an option during the
    # MySQL client library initialization.
    #
    [client]

    port=3307

    [mysql]

    default-character-set=latin1


    # SERVER SECTION
    # ----------------------------------------------------------------------
    #
    # The following options will be read by the MySQL Server. Make sure that
    # you have installed the server correctly (see above) so it reads this
    # file.
    #

    [mysqld]
    # Répertoire des données
    datadir="M:/MySQL Server 5.1/Data/"

    basedir="C:/Program Files/MySQL/MySQL Server 5.1/"

    # The TCP/IP Port the MySQL Server will listen on
    port=3306

    #préserve la casse des noms de tables ou bases
    #lower_case_table_names=2

    #Nombre de connexion maximum
    max_connections = 200

    #Taille du buffer des blocs d'index des tables MyISAM et ISAM
    #et partagés par tous les threads.
    # (25% de la RAM du serveur)
    key_buffer = 384M

    #Le nombre de tables ouvertes pour tous les threads réunis.
    #En augmentant cette valeur, vous augmentez le nombre de pointeurs de fichiers que mysqld utilise.
    #Vous pouvez vérifier si vous avez besoin de plus de cache de tables en étudiant la valeur de la variable Opened_tables.
    table_cache = 500

    #Si un fichier temporaire est utilisé pour créer rapidement un fichier d'index pour une table MyISAM
    #est plus grand que la valeur de cette variable,
    #alors préfère la méthode du cache de clé.
    #C'est surtout utilisé pour forcer les grands index à utiliser la méthode plus lente du cache de clé pour créer l'index.
    myisam_max_extra_sort_file_size=100G

    #Le buffer qui est alloués lors du tri d'index avec la commande REPAIR
    #ou lors de la création d'index avec CREATE INDEX ou ALTER TABLE.
    myisam_sort_buffer_size = 128M

    #La taille du buffer qui est utilisée pour les jointures complètes (les jointures qui n'utilisent pas d'index).
    #Ce buffer est alloué une fois pour chaque jointure entre deux tables.
    #Augmentez cette valeur si vous voulez obtenir des jointures plus rapides,
    #lorsque l'ajout d'index n'est pas possible.
    join_buffer_size = 2M

    #Chaque thread qui fait une recherche séquentielle alloue un buffer de cette taille pour son scan.
    #Si vous faites de nombreux scan séquentiels, vous pourriez avoir besoin d'augmenter cette valeur.
    read_buffer_size=2M
    #read_buffer_size=64K

    #Chaque thread qui doit faire un tri alloue un buffer de cette taille.
    #Augmentez cette taille pour accélérer les clauses ORDER BY ou GROUP BY
    sort_buffer_size = 64M

    #Combien de threads nous allons conserver en cache pour réutilisation.
    #Lorsqu'un client se déconnecte, les threads du client sont mis en cache s'il n'y en a pas déjà thread_cache_size de conservé.
    #Tous les nouveaux threads sont d'abord prélevé dans le cache, et uniquement lorsque le cache est vide,
    #un nouveau thread est créé. Cette variable peut vous permettre d'améliorer les performances si vous avez de nombreuses connexions.
    #Normalement, thread_cache_size ne donne pas d'amélioration notable si vous avez une bonne implémentation des threads.
    #En examinant la différence entre les variables de statut Connections et Threads_created vous pouvez voir comment
    #votre système de cache de threads est efficace.
    thread_cache_size = 384

    #Le nombre de secondes d'attente du serveur sur une connexion non interactive avant de la refermer.
    wait_timeout = 7200

    #Le nombre de secondes d'attente d'un paquet de connexion avant de conclure avec une erreur Bad handshake.
    #connect_timeout = 10

    #Si une table temporaire en mémoire excède cette taille, MySQL va automatiquement la convertir en une table MyISAM sur le disque.
    #Augmentez la valeur de tmp_table_size si vous faites un usage intensif de la clause GROUP BY et que vous avez beaucoup de mémoire.
    tmp_table_size = 256M

    #Ne pas autoriser la création de tables de type MEMORY (HEAP) plus grande que max_heap_table_size.
    #La valeur de la variable est utilisée pour calculer la valeur maximale de MAX_ROWS pour la table MEMORY.
    max_heap_table_size = 64M

    #Lors de la lecture des lignes triées, les lignes sont lues dans un buffer, pour éviter les accès disques.
    #En donnant à cette variable une grande valeur, vous améliorerez les performances des clauses ORDER BY.
    #Cependant, ce buffer est alloué pour chaque client : il est recommandé de ne pas donner une valeur globale trop importante.
    #Au lieu de cela, modifiez cette valeur si votre client a besoin de faire de gros tris.
    read_rnd_buffer_size = 8M

    #MyISAM utilise une cache hiérarchisé pour les insertions de masses (c'est à dire INSERT ... SELECT, INSERT ... VALUES (...), (...), ..., et LOAD DATA INFILE).
    #Cette variable limite la taille du cache en octets, par threads. Utiliser la valeur de 0 va désactiver cette optimisation.
    #Note : ce cache est uniquement utilisé lorsque vous ajoutez des données dans une table non-vide.
    #Par défaut, cette option vaut 8 Mo.
    bulk_insert_buffer_size = 64M

    #Ne met pas en cache les résultats qui sont plus grands que query_cache_limit.
    #Par défaut, 1 Mo.
    query_cache_limit = 4M

    #La mémoire allouée pour stocker les résultats des vieilles requêtes.
    #Si query_cache_size vaut 0, le cache de requête est désactivé (par défaut).
    query_cache_size =256M

    #Choisit le type de cache de requête.
    #0 -> Ne met pas en cache les résultats. Notez que cela ne va pas libérer le buffer de requête. Pour cela, il faut donner à query_cache_size la valeur de 0.
    #1 -> Met en cache tous les résultats exceptés les requêtes SELECT SQL_NO_CACHE
    #2 -> Met en cache uniquement les requêtes SELECT SQL_CACHE
    query_cache_type = 1

    #La taille du buffer persistant utilisé pour l'analyse des requêtes et leur exécution.
    #Ce buffer n'est pas libéré entre deux requêtes. Si vous manipulez des requêtes complexes,
    #une valeur plus grande pour query_prealloc_size sera plus utile pour améliorer les performances,
    #car elle peut réduire les allocations complémentaires de mémoire durant l'exécution des requêtes.
    query_prealloc_size = 32M

    #Taille des blocs de mémoire alloués pour les objets durant l'analyse et la préparation des requêtes.
    #Si vous avez un problème avec la fragmentation de la mémoire, cela peut être utile d'augmenter cette valeur
    query_alloc_block_size = 131072

    #Moteur de stockage par défaut
    default-storage-engine = INNODB

    #Jeu de caractère
    default-character-set=latin1
    #Collation
    default-collation=latin1_general_cs

    #Langage des messages d'erreurs
    #language = french

    #empêche les utilisateurs d'exécuter des commandes SHOW DATABASES si ils n'ont pas les droits de PROCESS.
    #Cela peut améliorer la sécurité si vous craignez de voir les utilisateurs découvrir ce que les autres ont mis en place.
    #skip_show_database

    #Indique si les requêtes lentes doivent être enregistrées. "Lente" est déterminé par la valeur de long_query_time.
    log-slow-queries=


    # *** INNODB Specific options ***

    # Si on ne souhaite pas utiliser INNODB
    #skip-innodb

    # La taille du buffer mémoire d'InnoDB, pour ses dictionnaires d'informations,
    #et ses structures internes de données. Une valeur pratique est 2Mo,
    #mais plus vous aurez de tables dans votre application, plus vous devrez augmenter cette valeur.
    #Si InnoDB est à court de mémoire, il va allouer de la mémoire auprès du système,
    #et écrire des messages dans le fichier de logs MySQL.
    innodb_additional_mem_pool_size = 16M

    # Taille du pool de buffer, en Mo, s'il est placé dans la mémoire AWE de Windows 32 bits.
    #Disponible depuis MySQL version 4.1.0, et uniquement utile sur Windows 32 bits.
    #Si votre système Windows 32 bits supporte plus de 4 Go de mémoire, dite aussi Address Windowing Extensions,
    #vous pouvez allouer le pool de buffer InnoDB dans la mémoire physique AWE en utilisant ce paramètre.
    #La valeur maximal est de 64000.
    #Si ce paramètre est spécifié, alors innodb_buffer_pool_size est la fenêtre dans l'espace d'adresse 32 bits
    #de mysqld où InnoDB place la mémoire AWE. Une bonne valeur pour innodb_buffer_pool_size est alors 500M.
    innodb_buffer_pool_size = 500M

    # Chemin individuel vers les fichiers de données, et leur taille.
    #Le chemin complet de chaque fichier de données est créé en concaténant innodb_data_home_dir
    #avec les chemins spécifiés ici. La taille du fichier est spécifiée en méga-octets,
    #ce qui explique la présence du 'M' après les spécifications ci-dessus.
    #Depuis la version 3.23.44, vous pouvez donner au fichier une taille supérieure à 4 Go sur
    #les systèmes d'exploitation qui acceptent les gros fichiers.
    #Sur certains systèmes, la taille doit être inférieure à 2 Go.
    #Si vous ne spécifiez pas innodb_data_file_path, le comportement par défaut depuis la version 4.0
    #est de créer un fichier auto-croissant de 10 Mo, appelé ibdata1.
    #innodb_data_file_path = ibdata1:500M:autoextend

    #La partie commune du chemin de tous les fichiers de données InnoDB.
    #Si vous ne mentionnez pas cette option, la valeur par défaut sera celle du dossier de données MySQL.
    #Vous pouvez aussi spécifier une chaîne vide, et dans ce cas, les chemins spécifiés dans innodb_data_file_path
    #seront des chemins absolus.
    #innodb_data_home_dir = d:/Data/

    # Nombre de pointeurs de fichier de InnoDB. Normalement, cette valeur doit être de 4,
    #mais sur des disques Windows, les accès peuvent être améliorés en augmentant cette valeur.
    #innodb_file_io_threads = 4

    # Attention : cette option ne doit être définie que dans les cas où vous voulez exporter les données
    #d'une base corrompue, dans une situation d'urgence. Les valeurs possibles de cette option vont de 1 à 6.
    #Par mesure de sécurité, InnoDB empêche les modifications de données si la valeur de cette option
    #est supérieure à 0.
    #innodb_force_recovery=1

    # InnoDB essaie de garder le nombre de thread système concurents inférieur à la limite de ce paramètre.
    #La valeur par défaut est 8. Si vous avez des problèmes de performances, et que SHOW INNODB STATUS
    #revèle que des threads attendent des sémaphores, essayez de diminuer ou augmenter ce paramètre.
    #Si vous avez un serveur avec de nombreux processeurs et disques, vous pouvez essayer d'augmenter la valeur,
    #pour utiliser au mieux les ressources disponibles.
    #Une valeur recommandée est la somme du nombre de processeurs et de disques que vous avez.
    #Une valeur de 500 ou supérieur, supprime la vérification de concurence.
    innodb_thread_concurrency = 16

    # Normalement, cette option vaut 1, ce qui signifie que lors de la validation de la transaction,
    #les logs sont écrits sur le disque, et les modifications faites par la transaction deviennent permanentes,
    #et survivront un crash de base. Si vous souhaitez réduire la sécurité de vos données,
    #et que vous exécutez de petites transactions, vous pouvez donner une valeur de 0 à cette option,
    #pour réduire les accès disques.
    innodb_flush_log_at_trx_commit = 1

    # InnoDB, unlike MyISAM, uses a buffer pool to cache both indexes and
    # row data. The bigger you set this the less disk I/O is needed to
    # access data in tables. On a dedicated database server you may set this
    # parameter up to 80% of the machine physical memory size. Do not set it
    # too large, though, because competition of the physical memory may
    # cause paging in the operating system. Note that on 32bit systems you
    # might be limited to 2-3.5G of user level memory per process, so do not
    # set it too high.
    innodb_buffer_pool_size=142M

    # Par défaut, InnoDB fait une purge complète et vide le buffer d'insertion avant une extinction.
    #Ces opérations peuvent prendre beaucoup de temps. Si vous donnez à ce paramètre la valeur de 1,
    #InnoDB ignore ces opérations d'extinction.
    #innodb_fast_shutdown

    # La taille du buffer que InnoDB utilise pour écrire les log dans les fichiers de logs, sur le disque.
    #Les valeurs utiles vont de 1 Mo à 8 Mo. Un grand buffer de log permet aux grandes transactions de s'exécuter
    #sans avoir à écrire de données dans le fichier de log jusqu'à la validation.
    #Par conséquent, si vous avez de grandes transactions, augmenter cette taille va réduire les accès disques.
    innodb_log_buffer_size = 8M

    # Taille de chaque fichier de log dans un groupe de log, exprimé en méga-octets.
    #Les valeurs pratiques vont de 1Mo à une fraction de la taille du buffer de log (1 / le nombre de logs, en fait).
    #Plus la taille est grande, moins de points de contrôles seront utilisés, réduisant les accès disques.
    #La taille combinée des logs doit être inférieure à 4 Go sur les systèmes 32 bits.
    innodb_log_file_size = 256M

    # Nombre de fichiers de logs dans le groupe de log. InnoDB écrit dans ces fichiers de manière circulaire.
    #Une valeur de 2 est recommandée. C'est la valeur par défaut.
    #innodb_log_files_in_group = 3

    # Le dossier pour les fichiers de logs. Il doit avoir la même valeur que innodb_log_arch_dir.
    #Si vous ne spécifiez pas de paramètre de log InnoDB, la configuration par défaut va créer deux fichiers de logs de 5 Mo,
    #appelés ib_logfile0 et ib_logfile1 dans le dossier de données MySQL.
    #innodb_log_group_home_dir

    # Cette entier va de 0 à 100. Par défaut, il vaut 90. Le thread principal de InnoDB essaie de transmettre
    #les pages au pool de buffer, pour qu'un pourcentage maximal de innodb_max_dirty_pages_pct soit encore en attente de flush.
    #innodb_max_dirty_pages_pct = 90

    # La valeur par défaut pour cette option est fdatasync. Une autre option est O_DSYNC.
    #innodb_flush_method=O_DSYNC

    # Le délai d'expiration des transactions InnoDB, en cas de blocage de verrou, avant d'annuler.
    #InnoDB détecte automatiquement les blocages de verrous et annule alors les transactions.
    #Si vous utilisez la commande LOCK TABLES, ou un autre gestionnaire de table transactionnelles que InnoDB dans la même transaction,
    #un blocage de verrou peut survenir, et InnoDB ne pourra pas le détecter.
    #Ce délai est donc pratique pour résoudre ces situations.
    innodb_lock_wait_timeout = 120

    #Prévoir le lancement du moteur innodb avec comme configuration un fichier tablespace par table.
    #Cela va créé un fichier tablespace pour chaque table innodb et vous évitera d'avoir dans quelque mois un
    #unique fichier tablespace de plusieurs giga octet impossible à manipuler.
    innodb_file_per_table

    [mysqld_safe]
    nice = -5
    open_files_limit = 8192


    [mysqldump]
    #max_allowed_packet = 16M

    [myisamchk]
    key_buffer = 64M
    sort_buffer = 64M
    read_buffer = 16M
    write_buffer = 16M

    Merci d'avance

    Titeuf

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 133
    Par défaut
    Bonjour,

    Que veux-tu optimiser?

    Ou plutot, quels sont les problèmes de performances que tu as?

    Ta question est tellement vague qu'on ne peut y répondre.

Discussions similaires

  1. optimiser une base MySql
    Par tremeur53 dans le forum Requêtes
    Réponses: 3
    Dernier message: 23/01/2008, 21h42
  2. Optimiser une requête mysql
    Par Raideman dans le forum Requêtes
    Réponses: 2
    Dernier message: 05/09/2007, 21h18
  3. Optimiser les paramètres MySQL - appel aux experts
    Par SuperCed dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 04/12/2006, 12h26
  4. AIdez moi à optimiser cette requete MySQL SVP
    Par petozak dans le forum Langage SQL
    Réponses: 4
    Dernier message: 13/09/2005, 15h16
  5. Optimiser les tables mysql, nécessaire ?
    Par Michaël dans le forum Requêtes
    Réponses: 5
    Dernier message: 15/07/2005, 18h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo