Il y a 389 articles et 19 utilisateurs inscrits (ce bandeau est défini dans MediaWiki:Sitenotice)
« MySQL » : différence entre les versions
Aucun résumé des modifications |
|||
| Ligne 85 : | Ligne 85 : | ||
=== Changement de la config === | === Changement de la config === | ||
{{path|/etc/mysql/mysql.conf.d$ vim mysqld.cnf}} | |||
<syntaxhighlight lang="bash">query_cache_type = 1 | <syntaxhighlight lang="bash">query_cache_type = 1 | ||
query_cache_limit = 1M | query_cache_limit = 1M | ||
| Ligne 114 : | Ligne 114 : | ||
7 ROWS IN SET (0.015 sec)</syntaxhighlight> | 7 ROWS IN SET (0.015 sec)</syntaxhighlight> | ||
Les index sur la table ark ont permis, avec le retrait du cache de 4Go, d'améliorer drastiquement les performances. | Les index sur la table ark ont permis, avec le retrait du cache de 4Go, d'améliorer drastiquement les performances. | ||
= Commandes utiles MAC OS X = | = Commandes utiles MAC OS X = | ||
* Démarrer mysql: | * Démarrer mysql: | ||
Version du 25 mars 2022 à 07:31
Commandes utiles
- Pour voir les dates créée et modifiée des tableaux:
select table_schema, table_name, create_time, update_time from information_schema.tables where table_schema='bmorleans_prod_pleade' order by create_time;
- Pour voir la progression pendant un import d'un gros fichier dans MySQL:
sudo apt-get install pv
pv /data/client/bm-orleans/bmorleans_prod_pleade.sql | mysql -u bmorleans_pleade -p6DvP8ana bmorleans_prod_pleade
Configuration de MySQL pour Pleade par défaut
- Pour voir le max_allowed_packet pour MySQL :
show variables like 'max_allowed_packet';
- Il faut modifier le fichier /etc/mysql/my.cnf
- Changer tous les "max_allowed_packet" à 100M
- Il faut changer max_allowed_packet=100M pour ajouter des gros fichiers EAD dans la base de données de Pleade :
sudo mysqld --max_allowed_packet=100M
sudo service mysql restart
ou
mysql -u root -p
set global max_allowed_packet=1024 * 1024 * 100;
Pour faire un mysqldump avec max_allowed_packet=100M :
mysqldump --max_allowed_packet=100M -u pleade -p pleade_preprod > /home/ajlsm/backup/update-PREPROD-ad84-2014-11-05-backup.sql
- Si non, vous pouvez avoir une erreur comme :
ERROR (2014-06-20) 11:45.54:450 [sdx.framework] (/pleade-mets/edit/ead-publish.xml) http-20380-66/LoggingUtils: Impossible d'ajouter un document avec l'identifiant « FRAD084_paroissiaux » dans l'entrepôt « ead-docs » : « Impossible d'exécuter la requête « INSERT INTO module_eadeac_ead_docs (id,data) VALUES (?, ?) » : impossible de lire l'index de recherche de « » : « Packet for query is too large (26462104 > 16777216). You can change this value on the server by setting the max_allowed_packet' variable. » »
mysqlreport
mysqlreport est installer normalement avec mysql sur linux. Il donne des informations sur la performance de mysql utiles. Voir cette page pour davantage d'info : http://hackmysql.com/nontech
show processlist
Après avoir connecté à mysql terminal, on peut faire
show processlist;
Pour voir les requêtes à cette instant.
Encodage des caratéres
L'encodage par défaut de MySQL est *ISO Latin1*. Ainsi, plusieurs caractères accentués ne sont pas gérés. Les problèmes apparaissent souvent au niveau de la partie gauche de la fenêtre EAD (car les données correspondantes sont dans la base de données).
Pour corriger ce problème, il faut changer par défaut l'encodage de MySQL en *utf8*.
Il y a deux manières de régler le problème.
A) Il faut ajouter les deux lignes suivantes dans les sections client et mysqld du fichier my.cnf.
[client]
default-character-set = utf8
[mysqld]
character-set-server = utf8
- OU ***
B) Ajouter le paramètrage suivant à la connexion jdbc dans tomcat/conf/context.xml:
?useEncoding=true&characterEncoding=UTF-8
Exemple:
<Resource name="jdbc/pleade3" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000"
url="jdbc:mysql://localhost/pleade310?useEncoding=true&characterEncoding=UTF-8" driverClassName="com.mysql.jdbc.Driver" username="sdxapp" password="sdxapp-pwd"/>
Optimisation : Modification de la configuration de la base de données Pleade
Désactivation du cache
Changement de la config
/etc/mysql/mysql.conf.d$ vim mysqld.cnf
query_cache_type = 1
query_cache_limit = 1M
query_cache_size = 4G
par
query_cache_type = 0
query_cache_limit = 1M
query_cache_size = 0
Modification à chaud :
SET global query_cache_type = 0;
SET global query_cache_size = 0;
Ajout des index manquants
MySQL [(NONE)]> SELECT TABLE_SCHEMA, TABLE_NAME,INDEX_NAME,GROUP_CONCAT(COLUMN_NAME)AS COLUMN_NAMES FROM INFORMATION_SCHEMA.STATISTICS WHERE INDEX_NAME LIKE 'dba%' GROUP BY TABLE_SCHEMA, TABLE_NAME,INDEX_NAME ORDER BY INDEX_NAME;
+-------------------+-------------+------------+------------------------+
| TABLE_SCHEMA | TABLE_NAME | INDEX_NAME | COLUMN_NAMES |
+-------------------+-------------+------------+------------------------+
| pleade_persistant | ark | dba1 | name___ark |
| pleade_persistant | ark | dba2 | method,updated |
| pleade_internet | o_anotice | dba4 | STATUS,idiiif |
| pleade_internet | o_anotice | dba5 | idiiif,STATUS |
| pleade_slecture | publication | dba6 | insertfinished,started |
| pleade_slecture | publication | dba7 | started,insertfinished |
| pleade_persistant | ark | dba8 | updated,method |
+-------------------+-------------+------------+------------------------+
7 ROWS IN SET (0.015 sec)
Les index sur la table ark ont permis, avec le retrait du cache de 4Go, d'améliorer drastiquement les performances.
Commandes utiles MAC OS X
- Démarrer mysql:
sudo port load mysql56-server
- Arrêter mysql:
sudo port unload mysql56-server