<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Actualité MySQL</title>
    <link>http://www.w3architect.com/</link>
    <description>Actualité et informations sur les MySQL</description>
    <dc:creator>w3architect.com</dc:creator>
    <item>
      <title>PHP-FPM (FastCGI Process Manager)</title>
      <link>http://moosh.et.son.brol.be/blog/index.php/2010/07/29/1078-php-fpm-fastcgi-process-manager-est-une-alternative-a-php-fastcgi-avec-toute-une-serie-d-amelioration-principalement-utilse-pour-les-site-a-fort-taux-d-utilisation</link>
      <description>PHP-FPM est disponible dans le dernier php (5.3)... mais qu'est-ce-que
c'est&amp;nbsp;?    PHP-FPM (FastCGI Process Manager) est une alternative
&amp;agrave; PHP FastCGI avec toute une s&amp;eacute;rie d'am&amp;eacute;lioration.
Principalement utile pour les sites &amp;agrave; fort taux d'utilisation.
Plusieurs VHosts avec un UID/GID diff&amp;eacute;rent et des PHP.ini
diff&amp;eacute;rents.  FPM permet de faire tourner plusieurs VHosts avec un
UID/GID diff&amp;eacute;rent et des PHP.ini diff&amp;eacute;rents.   Support de
l'upload acc&amp;eacute;l&amp;eacute;r&amp;eacute;   Statistique de base  similaire
&amp;agrave; mod_status d'apache.  Red&amp;eacute;marrage de secours en cas de
destruction accidentelle de l'opcode    Un header d'erreur  une config
style  [ini]  fastcgi.error_header = &amp;quot;HTTP/1.0 550 Server Made Big
Boo&amp;quot;    ... provoquera l'envoi de cette erreur au lieu d'en
&amp;quot;200 tout va bien&amp;quot; avec une page blanche.
am&amp;eacute;lioration de la gestion des processus en cas de graceful
stop/start   En pratique ca permet de prendre en compte une nouvelle
config qui n&amp;eacute;cessite un red&amp;eacute;marrage sans interrompre ce
qui avait commenc&amp;eacute; avec l'ancienne configuration.
Journalisation des scripts lents  avec [xml]     &amp;lt;value
name=&amp;quot;request_slowlog_timeout&amp;quot;&amp;gt;5s&amp;lt;/value&amp;gt;
&amp;lt;value name=&amp;quot;slowlog&amp;quot;&amp;gt;logs/slow.log&amp;lt;/value&amp;gt;
donnera [log]  Sep 21 16:22:19.399162 pid 29715 (pool default)
script_filename = /local/www/stable/www/catalogue.php
[0x00007fff23618120] mysql_query()
/srv/stable/common/Database/class.MySQLRequest.php:20
[0x00007fff23618560] getResult()
/srv/stable/common/Database/class.Facade.php:106   [0x00007fff23618aa0]
query() /srv/stable/common/mysite.com/ORM/class.UsersMapper.php:99
Journalisation de Stdout &amp;amp; stderr    fastcgi_finish_request()  une
fonction sp&amp;eacute;ciale pour cl&amp;ocirc;turer la connexion avec le
client, mais continuer un traitement php &amp;agrave; d&amp;eacute;couvrir en
d&amp;eacute;tail ici    Autres points  PHP-FPM est compatible avec
ZendOptimizer      &amp;agrave; lire aussi   J'ai commenc&amp;eacute; une page
wikipedia que vous pouvez compl&amp;eacute;ter. [1] Le site du projet
http://blog.developpez.com/julienpauli/p8432/php/php-fpm-rejoind-le-svn-de-php/
php-fpm rejoint le svn de php  par Julien Pauli Le fichier de config de
fpm dispo pour debian Migration vers 5.3  Notes [1] Qui, le temps de
r&amp;eacute;diger et publier cet article, a d&amp;eacute;j&amp;agrave;
&amp;eacute;t&amp;eacute; retravaill&amp;eacute;e. C'est la magie wikipedia</description>
      <pubDate>Thu, 29 Jul 2010 11:23:09 GMT</pubDate>
      <guid isPermaLink="false">http://moosh.et.son.brol.be/blog/index.php/2010/07/29/1078-php-fpm-fastcgi-process-manager-est-une-alternative-a-php-fastcgi-avec-toute-une-serie-d-amelioration-principalement-utilse-pour-les-site-a-fort-taux-d-utilisation</guid>
      <dc:date>2010-07-29T11:23:09Z</dc:date>
    </item>
    <item>
      <title>Outils d’analyse de requêtes lentes – mysqlsla</title>
      <link>http://www.dbnewz.com/?p=622</link>
      <description>Pour ce second volet de notre s&amp;eacute;rie consacr&amp;eacute;e aux outils
d&amp;rsquo;analyse de requ&amp;ecirc;tes lentes, nous allons nous pencher
aujourd&amp;rsquo;hui sur mysqlsla, qui est un script Perl disposant de
nombreuses options d&amp;rsquo;agr&amp;eacute;gation et de filtrage.
Commen&amp;ccedil;ons par l&amp;rsquo;installation du script. Rien de plus
simple, il vous suffit pour commencer de t&amp;eacute;l&amp;eacute;charger et de
d&amp;eacute;compresser une archive de [...]</description>
      <pubDate>Wed, 28 Jul 2010 14:01:15 GMT</pubDate>
      <guid isPermaLink="false">http://www.dbnewz.com/?p=622</guid>
      <dc:date>2010-07-28T14:01:15Z</dc:date>
    </item>
    <item>
      <title>Utiliser Zend_Log</title>
      <link>http://moosh.et.son.brol.be/blog/index.php/2010/07/28/1038-utiliser-zend_log</link>
      <description>Allez on va essayer d'utiliser Zend_log convenablement.   L'id&amp;eacute;e
c'est de d&amp;eacute;couper les moments de d&amp;eacute;cisions.
J'&amp;eacute;cris mon code je d&amp;eacute;cide de journaliser un message ou
des infos Je g&amp;egrave;re mes journaux, je d&amp;eacute;cide o&amp;ugrave; va tel
ou tel message. Je g&amp;egrave;re plusieurs staging, je change le
comportement des mes dispatching Je change le format de stockage de mon
journal, je d&amp;eacute;cide comment disposer des informations
re&amp;ccedil;ues Je d&amp;eacute;cide o&amp;ugrave; je lis/r&amp;eacute;cup&amp;egrave;re
mes messages.   Julien d&amp;eacute;broussaille Zend_log dans sa
Pr&amp;eacute;sentation du Zend Framework et  une liste de tuto permet de
compl&amp;eacute;ter    J'&amp;eacute;cris mon code je d&amp;eacute;cide de
journaliser un message ou des infos   Pendant que je code ma
r&amp;eacute;flexion doit se limiter &amp;agrave;  quel message envoyer quelles
infos compl&amp;eacute;mentaire envoyer quelle
gravit&amp;eacute;/s&amp;eacute;v&amp;eacute;rit&amp;eacute;/cat&amp;eacute;goriser de
message j'envoie.   [php] &amp;lt;?php  $log-&amp;gt;info('Hello log'); ?&amp;gt;
ajoutons une info  [php] &amp;lt;?php  $log-&amp;gt;info('Hello log je suis
&amp;agrave; la ligne ' . __LINE__); ?&amp;gt;    Bon l&amp;agrave; on a
envoy&amp;eacute; le message   Je g&amp;egrave;re mes journaux, je d&amp;eacute;cide
o&amp;ugrave; vont les messages.    Ca se passe plut&amp;ocirc;t dans le script.
On pr&amp;eacute;pare un objet ($log). qui sera utilis&amp;eacute; par la suite
dans le code mais on va commencer &amp;agrave; lui dire que faire de ces
messages qui remontent.  [php] &amp;lt;?php  $log = new Zend_Log(); ?&amp;gt;
Premi&amp;egrave;re chose (&amp;eacute;vidente) assigner les writers (les
scribes).  [php] &amp;lt;?php  $redacteur = new
Zend_Log_Writer_Stream('/repository/des/ficher.log'); $log
-&amp;gt;addWriter($redacteur); ?&amp;gt;    l&amp;agrave; c'est dans un un fichier
mais &amp;quot;stream&amp;quot; permet aussi un acc&amp;egrave;s plus large,  [php]
&amp;lt;?php  $redacteur = new Zend_Log_Writer_Stream('php://output'); ?&amp;gt;
Et on a pas que &amp;quot;stream&amp;quot;, ca peut-&amp;ecirc;tre aussi  dans une
base de donn&amp;eacute;e -&amp;gt; Zend_Log_Writer_Db, dans firebug -&amp;gt;
Zend_Log_Writer_Firebug, dans un email -&amp;gt; Zend_Log_Writer_Mail, dans
un mock -&amp;gt; Zend_Log_Writer_Mock dans syslog -&amp;gt;
Zend_Log_Writer_Syslog dans le n&amp;eacute;ant ... (si le temps du
d&amp;eacute;veloppement ou de tests intensifs, vous ne voulez pas polluer
vos logs, redirigez les un temps dans null  -&amp;gt; Zend_Log_Writer_Null
//php &amp;lt;?php  $redacteur = new Zend_Log_Writer_Null;  ?&amp;gt; ///   et
si ca ne me plait pas je peux faire mon scribe en partant de
Zend_Log_Writer_Abstract   je d&amp;eacute;cide o&amp;ugrave; va tel ou tel
message.   Si c'est pour mettre la m&amp;ecirc;me chose partout ce n'est pas
sp&amp;eacute;cialement int&amp;eacute;ressant.   On va donc filtrer les
messages &amp;agrave; envoyer &amp;agrave; chaque scribe. (r&amp;eacute;dacteur dans
la doc)   Pour ca on a 4 outils   Zend_Log_Filter_Interface
Zend_Log_Filter_Message Zend_Log_Filter_Priority
Zend_Log_Filter_Suppress   Je change le format de stockage de mon
journal, je d&amp;eacute;cide comment disposer des informations
re&amp;ccedil;ues   La fa&amp;ccedil;on dont on &amp;eacute;crit chaque message  est
un format &amp;quot;par d&amp;eacute;faut&amp;quot; mais il peut &amp;ecirc;tre
red&amp;eacute;fini   Zend_Log_Formatter_Firebug
Zend_Log_Formatter_Interface Zend_Log_Formatter_Simple
Zend_Log_Formatter_Xml   En utilisant cela vos pourrez  logguer dans un
fichier rss</description>
      <pubDate>Wed, 28 Jul 2010 09:00:00 GMT</pubDate>
      <guid isPermaLink="false">http://moosh.et.son.brol.be/blog/index.php/2010/07/28/1038-utiliser-zend_log</guid>
      <dc:date>2010-07-28T09:00:00Z</dc:date>
    </item>
    <item>
      <title>Vulnérabilités MySQL 5.1.47</title>
      <link>http://dasini.net/blog/?p=953</link>
      <description>Les versions ant&amp;eacute;rieurs &amp;agrave; 5.1.47 MySQL souffrent de
vuln&amp;eacute;rabilit&amp;eacute;s:  d&amp;eacute;ni de service. Cet effet peut se
produire lorsque le serveur de base de donn&amp;eacute;es re&amp;ccedil;oit un
paquet dont la taille est sup&amp;eacute;rieure &amp;agrave; la taille maximale
autoris&amp;eacute;e. d&amp;eacute;bordement de m&amp;eacute;moire (buffer
overflow). Cet effet se produit lorsque l&amp;rsquo;argument pass&amp;eacute;
&amp;agrave; la commande &amp;laquo;&amp;nbsp;COM_FILED_LIST&amp;nbsp;&amp;raquo; est
tr&amp;egrave;s long. L&amp;rsquo;utilisateur doit cependant &amp;ecirc;tre
authentifi&amp;eacute; pour exploiter cette vuln&amp;eacute;rabilit&amp;eacute;.
Versions affect&amp;eacute;es:&amp;nbsp; Versions ant&amp;eacute;rieures &amp;agrave;
5.1.47 Criticit&amp;eacute;: Moyenne Solution: Mises &amp;agrave; jour
disponibles sur les diff&amp;eacute;rentes distributions  MySQL souffre
d&amp;rsquo;une vuln&amp;eacute;rabilit&amp;eacute; de d&amp;eacute;ni de service. Cet
effet peut se produire lorsque le serveur de base de donn&amp;eacute;es
re&amp;ccedil;oit un paquet dont la taille est sup&amp;eacute;rieure &amp;agrave; la
taille maximale autoris&amp;eacute;e.</description>
      <pubDate>Thu, 22 Jul 2010 14:13:21 GMT</pubDate>
      <guid isPermaLink="false">http://dasini.net/blog/?p=953</guid>
      <dc:date>2010-07-22T14:13:21Z</dc:date>
    </item>
    <item>
      <title>Vuln�rabilit�s MySQL 5.1.47</title>
      <link>http://dasini.net/blog/?p=953</link>
      <description>Les versions ant&amp;eacute;rieurs &amp;agrave; 5.1.47 MySQL souffrent de
vuln&amp;eacute;rabilit&amp;eacute;s:  d&amp;eacute;ni de service. Cet effet peut se
produire lorsque le serveur de base de donn&amp;eacute;es re&amp;ccedil;oit un
paquet dont la taille est sup&amp;eacute;rieure &amp;agrave; la taille maximale
autoris&amp;eacute;e. d&amp;eacute;bordement de m&amp;eacute;moire (buffer
overflow). Cet effet se produit lorsque l&amp;rsquo;argument pass&amp;eacute;
&amp;agrave; la commande &amp;laquo;&amp;nbsp;COM_FILED_LIST&amp;nbsp;&amp;raquo; est
tr&amp;egrave;s long. L&amp;rsquo;utilisateur doit cependant &amp;ecirc;tre
authentifi&amp;eacute; pour exploiter cette vuln&amp;eacute;rabilit&amp;eacute;.
Versions affect&amp;eacute;es:&amp;nbsp; Versions ant&amp;eacute;rieures &amp;agrave;
5.1.47 Criticit&amp;eacute;: Moyenne Solution: Mises &amp;agrave; jour
disponibles sur les diff&amp;eacute;rentes distributions  MySQL souffre
d&amp;rsquo;une vuln&amp;eacute;rabilit&amp;eacute; de d&amp;eacute;ni de service. Cet
effet peut se produire lorsque le serveur de base de donn&amp;eacute;es
re&amp;ccedil;oit un paquet dont la taille est sup&amp;eacute;rieure &amp;agrave; la
taille maximale autoris&amp;eacute;e.</description>
      <pubDate>Thu, 22 Jul 2010 14:13:21 GMT</pubDate>
      <guid isPermaLink="false">http://dasini.net/blog/?p=953</guid>
      <dc:date>2010-07-22T14:13:21Z</dc:date>
    </item>
    <item>
      <title>Migration vers CouchDB</title>
      <link>http://www.lephpfacile.com/news/7179-migration-vers-couchdb</link>
      <description>John P. Bois partage une &amp;eacute;tude de cas, publi&amp;eacute; sur le site
couch.io,  touchant le th&amp;egrave;me &amp;laquo;&amp;nbsp;la migration vers CouchDB&amp;nbsp;&amp;raquo;.&lt;br /&gt;
&lt;br /&gt;
 John montre les diff&amp;eacute;rentes &amp;eacute;tapes pour basculer les
donn&amp;eacute;es MySQL vers CouchDB. Il explique &amp;eacute;tape par
&amp;eacute;tape le choix de changements et les diff&amp;eacute;rentes
contraintes rencontr&amp;eacute;es.&lt;br /&gt;
&lt;br /&gt;
 Son &amp;eacute;tude est int&amp;eacute;ressante car  elle peut r&amp;eacute;pondre
aux attentes de certaines projets.&lt;br /&gt;
&lt;br /&gt;
 - &lt;a href="http://www.couch.io/migrating-to-couchdb"&gt;Migrating to
  CouchDB with a Focus on Views&lt;/a&gt;</description>
      <pubDate>Tue, 20 Jul 2010 21:24:00 GMT</pubDate>
      <guid isPermaLink="false">http://www.lephpfacile.com/news/7179-migration-vers-couchdb</guid>
      <dc:date>2010-07-20T21:24:00Z</dc:date>
    </item>
    <item>
      <title>Attention aux requêtes en double avec Windev et MySQL !</title>
      <link>http://blog.capdata.fr/?p=1094</link>
      <description>Hello, Un post pour vous d&amp;eacute;montrer que c&amp;rsquo;est toujours
int&amp;eacute;ressant de lire les documentations et que parfois, les
petites lignes en bas de page peuvent r&amp;eacute;v&amp;eacute;ler des
informations importantes. J&amp;rsquo;&amp;eacute;tais r&amp;eacute;cemment chez un
client pour un audit de performance dans un environnement Windev /
MySQL. Je ne suis pas un grand sp&amp;eacute;cialiste de Windev, bien
qu&amp;rsquo;ayant d&amp;eacute;j&amp;agrave; r&amp;eacute;alis&amp;eacute; des audits sur
ce type d&amp;rsquo;environnement, je n&amp;rsquo;avais jamais eu
l&amp;rsquo;occasion d&amp;rsquo;aller aussi loin dans la compr&amp;eacute;hension
du code applicatif. Au hasard de l&amp;rsquo;analyse des requ&amp;ecirc;tes
lentes (via le log des requ&amp;ecirc;tes lentes), je me suis aper&amp;ccedil;u
qu&amp;rsquo;une requ&amp;ecirc;te apparaissait syst&amp;eacute;matiquement deux
fois cons&amp;eacute;cutivement dans le log. Apr&amp;egrave;s avoir
identifi&amp;eacute; avec mon client le bout de code ex&amp;eacute;cutant cette
requ&amp;ecirc;te,&amp;nbsp;nous avons travaill&amp;eacute; avec le log
g&amp;eacute;n&amp;eacute;ral de MySQL afin d&amp;rsquo;essayer de comprendre
pourquoi cette requ&amp;ecirc;te &amp;eacute;tait lanc&amp;eacute;e deux fois alors
qu&amp;rsquo;elle n&amp;rsquo;apparaissait qu&amp;rsquo;une fois dans le code
applicatif. Le code utilis&amp;eacute; est le suivant : SD est une Source de
Donn&amp;eacute;es MaReq est une cha&amp;icirc;ne
####################################################################################
MaReq = &amp;quot;SELECT nom, prenom FROM client WHERE type =  1&amp;quot; //
Ex&amp;eacute;cution de la requ&amp;ecirc;te HEx&amp;eacute;cuteRequ&amp;ecirc;teSQL(SD,
MaConnexionMySQL,  hRequ&amp;ecirc;teSansCorrection,  MaReq)   // Boucle sur
le r&amp;eacute;sultat HLitPremier(SD) TANTQUE  PAS HEnDehors(SD)
Trace(SD.Nom) HLitSuivant(SD) FIN
####################################################################################
Le verdict du log g&amp;eacute;n&amp;eacute;ral est sans appel, la requ&amp;ecirc;te
est bien ex&amp;eacute;cut&amp;eacute;e deux fois ! Petite parenth&amp;egrave;se, la
fonction&amp;nbsp;HEx&amp;eacute;cuteRequ&amp;ecirc;teSQL r&amp;eacute;alise
syst&amp;eacute;matiquement une modification de code SQL (Ajout d&amp;rsquo;un
ORDER BY par exemple). Si vous souhaitez conserver votre code SQL
original, n&amp;rsquo;oubliez pas d&amp;rsquo;ajouter le
param&amp;egrave;tre&amp;nbsp;hRequ&amp;ecirc;teSansCorrection comme fait ici. Mais
revenons &amp;agrave; nos moutons, la myst&amp;eacute;rieuse requ&amp;ecirc;te en
double&amp;hellip; Apr&amp;egrave;s plusieurs tests, nous avons r&amp;eacute;ussi
&amp;agrave; identifier la cause de cette double ex&amp;eacute;cution, il
s&amp;rsquo;agissait de la fonction HLitPremier. En effet, cette fonction
ex&amp;eacute;cute une nouvelle fois la requ&amp;ecirc;te, certainement pour
int&amp;eacute;grer d&amp;rsquo;&amp;eacute;ventuelles modifications de
donn&amp;eacute;es entre le moment o&amp;ugrave; l&amp;rsquo;on ex&amp;eacute;cute la
requ&amp;ecirc;te et le moment o&amp;ugrave; l&amp;rsquo;on entre dans la boucle.
Simplement, si la requ&amp;ecirc;te est d&amp;eacute;j&amp;agrave; co&amp;ucirc;teuse,
elle l&amp;rsquo;est d&amp;rsquo;autant plus si elle est lanc&amp;eacute;e deux fois
et la seconde ex&amp;eacute;cution n&amp;rsquo;est pas forcement
n&amp;eacute;cessaire. Cela d&amp;eacute;pend &amp;eacute;videmment du contexte
applicatif dans lequel vous vous trouvez. Dans le cas pr&amp;eacute;sent, ce
n&amp;rsquo;&amp;eacute;tait pas n&amp;eacute;cessaire. Nous voici donc en train
d&amp;rsquo;&amp;eacute;plucher la documentation Windev (c&amp;rsquo;est l&amp;agrave;
que vous comprenez mon introduction)&amp;nbsp;&amp;agrave; la recherche
d&amp;rsquo;une information capitale dans notre cas : Comment
d&amp;eacute;sactiver cette double ex&amp;eacute;cution ? Et nous n&amp;rsquo;avons
pas mis longtemps (enfin, un peu quand m&amp;ecirc;me&amp;hellip;) &amp;agrave;
rep&amp;eacute;rer de petites lignes en bas de la page de la documentation
de l&amp;rsquo;acc&amp;egrave;s natif MySQL pour Windev : Optimisations des
fonctions HyperFileSQL (R&amp;eacute;f :
&amp;nbsp;http://doc.pcsoft.fr/fr-FR/?acces-natif-mysql-pour-windev-webdev)
Les Tables fichiers bas&amp;eacute;es sur des requ&amp;ecirc;tes sont
optimis&amp;eacute;es : il    est possible de trier la table en cliquant sur
une de ses colonnes. Pour &amp;eacute;viter de r&amp;eacute;-ex&amp;eacute;cuter
plusieurs fois la m&amp;ecirc;me requ&amp;ecirc;te lors du parcours    de son
r&amp;eacute;sultat, il est conseill&amp;eacute; d&amp;rsquo;utiliser la constante
hSansRafraichir (par exemple si un seul poste modifie les
donn&amp;eacute;es).  Donc, pour r&amp;eacute;sumer, si vous utilisez la
fonction HLitPremier et que vous ne souhaitez pas que celle-ci
r&amp;eacute;-ex&amp;eacute;cute la requ&amp;ecirc;te pr&amp;eacute;c&amp;eacute;demment
ex&amp;eacute;cut&amp;eacute;e par la fonction HEx&amp;eacute;cuteRequ&amp;ecirc;teSQL,
vous devez utiliser la fonction avec le param&amp;egrave;tre suivant :
HLitPremier(SD,&amp;nbsp; hSansRafra&amp;icirc;chir)  Et effectivement, le log
g&amp;eacute;n&amp;eacute;ral ne mentionnait plus qu&amp;rsquo;une seule
ex&amp;eacute;cution apr&amp;egrave;s cette correction de code Windev !
J&amp;rsquo;esp&amp;egrave;re que cette information vous sera utile pour vos
devs Windev existants ou &amp;agrave; venir. N&amp;rsquo;h&amp;eacute;sitez pas
&amp;agrave; nous faire un retour si vous aviez d&amp;eacute;j&amp;agrave;
rencontr&amp;eacute; ce probl&amp;egrave;me ou pour tout retour
d&amp;rsquo;exp&amp;eacute;rience Windev / MySQL. Un grand merci &amp;agrave; toute
l&amp;rsquo;&amp;eacute;quipe qui se reconnaitra et &amp;agrave; bient&amp;ocirc;t sur
le blog de capdata. C&amp;eacute;dric Documentation sur le log des
requ&amp;ecirc;tes lentes :
http://dev.mysql.com/doc/refman/5.1/en/slow-query-log.html Documentation
sur le log g&amp;eacute;n&amp;eacute;ral :
&amp;nbsp;http://dev.mysql.com/doc/refman/5.1/en/query-log.html
Documentation Windev : http://doc.pcsoft.fr/fr-FR/Autres articles
&amp;agrave; d&amp;eacute;couvrir sur le blog :  R&amp;egrave;gles
d&amp;rsquo;installation de base (&amp;eacute;pisode 1) (David BAFFALEUF) [SQL
Server] Un trigger fait-il parti d&amp;rsquo;une transaction ?
(C&amp;eacute;dric PEINTRE) [G&amp;eacute;n&amp;eacute;ralMySQLOracleSQL
ServerSybase] Abonnez-vous au blog de la CapData team ! (C&amp;eacute;dric
PEINTRE) [G&amp;eacute;n&amp;eacute;ralMySQLOracleSQL ServerSybase]
Int&amp;eacute;r&amp;ecirc;t de cr&amp;eacute;er des indexes cluster uniques (David
BAFFALEUF) [SQL Server] Que faire des &amp;laquo;&amp;nbsp;[Warning] Aborted
connection&amp;nbsp;&amp;raquo; avec MySQL ? (C&amp;eacute;dric PEINTRE) [MySQL]</description>
      <pubDate>Thu, 15 Jul 2010 08:43:16 GMT</pubDate>
      <guid isPermaLink="false">http://blog.capdata.fr/?p=1094</guid>
      <dc:date>2010-07-15T08:43:16Z</dc:date>
    </item>
    <item>
      <title>Attention aux requ�tes en double avec Windev et MySQL !</title>
      <link>http://blog.capdata.fr/?p=1094</link>
      <description>Hello, Un post pour vous d&amp;eacute;montrer que c&amp;rsquo;est toujours
int&amp;eacute;ressant de lire les documentations et que parfois, les
petites lignes en bas de page peuvent r&amp;eacute;v&amp;eacute;ler des
informations importantes. J&amp;rsquo;&amp;eacute;tais r&amp;eacute;cemment chez un
client pour un audit de performance dans un environnement Windev /
MySQL. Je ne suis pas un grand sp&amp;eacute;cialiste de Windev, bien
qu&amp;rsquo;ayant d&amp;eacute;j&amp;agrave; r&amp;eacute;alis&amp;eacute; des audits sur
ce type d&amp;rsquo;environnement, je n&amp;rsquo;avais jamais eu
l&amp;rsquo;occasion d&amp;rsquo;aller aussi loin dans la compr&amp;eacute;hension
du code applicatif. Au hasard de l&amp;rsquo;analyse des requ&amp;ecirc;tes
lentes (via le log des requ&amp;ecirc;tes lentes), je me suis aper&amp;ccedil;u
qu&amp;rsquo;une requ&amp;ecirc;te apparaissait syst&amp;eacute;matiquement deux
fois cons&amp;eacute;cutivement dans le log. Apr&amp;egrave;s avoir
identifi&amp;eacute; avec mon client le bout de code ex&amp;eacute;cutant cette
requ&amp;ecirc;te,&amp;nbsp;nous avons travaill&amp;eacute; avec le log
g&amp;eacute;n&amp;eacute;ral de MySQL afin d&amp;rsquo;essayer de comprendre
pourquoi cette requ&amp;ecirc;te &amp;eacute;tait lanc&amp;eacute;e deux fois alors
qu&amp;rsquo;elle n&amp;rsquo;apparaissait qu&amp;rsquo;une fois dans le code
applicatif. Le code utilis&amp;eacute; est le suivant : SD est une Source de
Donn&amp;eacute;es MaReq est une cha&amp;icirc;ne
####################################################################################
MaReq = &amp;quot;SELECT nom, prenom FROM client WHERE type =  1&amp;quot; //
Ex&amp;eacute;cution de la requ&amp;ecirc;te HEx&amp;eacute;cuteRequ&amp;ecirc;teSQL(SD,
MaConnexionMySQL,  hRequ&amp;ecirc;teSansCorrection,  MaReq)   // Boucle sur
le r&amp;eacute;sultat HLitPremier(SD) TANTQUE  PAS HEnDehors(SD)
Trace(SD.Nom) HLitSuivant(SD) FIN
####################################################################################
Le verdict du log g&amp;eacute;n&amp;eacute;ral est sans appel, la requ&amp;ecirc;te
est bien ex&amp;eacute;cut&amp;eacute;e deux fois ! Petite parenth&amp;egrave;se, la
fonction&amp;nbsp;HEx&amp;eacute;cuteRequ&amp;ecirc;teSQL r&amp;eacute;alise
syst&amp;eacute;matiquement une modification de code SQL (Ajout d&amp;rsquo;un
ORDER BY par exemple). Si vous souhaitez conserver votre code SQL
original, n&amp;rsquo;oubliez pas d&amp;rsquo;ajouter le
param&amp;egrave;tre&amp;nbsp;hRequ&amp;ecirc;teSansCorrection comme fait ici. Mais
revenons &amp;agrave; nos moutons, la myst&amp;eacute;rieuse requ&amp;ecirc;te en
double&amp;hellip; Apr&amp;egrave;s plusieurs tests, nous avons r&amp;eacute;ussi
&amp;agrave; identifier la cause de cette double ex&amp;eacute;cution, il
s&amp;rsquo;agissait de la fonction HLitPremier. En effet, cette fonction
ex&amp;eacute;cute une nouvelle fois la requ&amp;ecirc;te, certainement pour
int&amp;eacute;grer d&amp;rsquo;&amp;eacute;ventuelles modifications de
donn&amp;eacute;es entre le moment o&amp;ugrave; l&amp;rsquo;on ex&amp;eacute;cute la
requ&amp;ecirc;te et le moment o&amp;ugrave; l&amp;rsquo;on entre dans la boucle.
Simplement, si la requ&amp;ecirc;te est d&amp;eacute;j&amp;agrave; co&amp;ucirc;teuse,
elle l&amp;rsquo;est d&amp;rsquo;autant plus si elle est lanc&amp;eacute;e deux fois
et la seconde ex&amp;eacute;cution n&amp;rsquo;est pas forcement
n&amp;eacute;cessaire. Cela d&amp;eacute;pend &amp;eacute;videmment du contexte
applicatif dans lequel vous vous trouvez. Dans le cas pr&amp;eacute;sent, ce
n&amp;rsquo;&amp;eacute;tait pas n&amp;eacute;cessaire. Nous voici donc en train
d&amp;rsquo;&amp;eacute;plucher la documentation Windev (c&amp;rsquo;est l&amp;agrave;
que vous comprenez mon introduction)&amp;nbsp;&amp;agrave; la recherche
d&amp;rsquo;une information capitale dans notre cas : Comment
d&amp;eacute;sactiver cette double ex&amp;eacute;cution ? Et nous n&amp;rsquo;avons
pas mis longtemps (enfin, un peu quand m&amp;ecirc;me&amp;hellip;) &amp;agrave;
rep&amp;eacute;rer de petites lignes en bas de la page de la documentation
de l&amp;rsquo;acc&amp;egrave;s natif MySQL pour Windev : Optimisations des
fonctions HyperFileSQL (R&amp;eacute;f :
&amp;nbsp;http://doc.pcsoft.fr/fr-FR/?acces-natif-mysql-pour-windev-webdev)
Les Tables fichiers bas&amp;eacute;es sur des requ&amp;ecirc;tes sont
optimis&amp;eacute;es : il    est possible de trier la table en cliquant sur
une de ses colonnes. Pour &amp;eacute;viter de r&amp;eacute;-ex&amp;eacute;cuter
plusieurs fois la m&amp;ecirc;me requ&amp;ecirc;te lors du parcours    de son
r&amp;eacute;sultat, il est conseill&amp;eacute; d&amp;rsquo;utiliser la constante
hSansRafraichir (par exemple si un seul poste modifie les
donn&amp;eacute;es).  Donc, pour r&amp;eacute;sumer, si vous utilisez la
fonction HLitPremier et que vous ne souhaitez pas que celle-ci
r&amp;eacute;-ex&amp;eacute;cute la requ&amp;ecirc;te pr&amp;eacute;c&amp;eacute;demment
ex&amp;eacute;cut&amp;eacute;e par la fonction HEx&amp;eacute;cuteRequ&amp;ecirc;teSQL,
vous devez utiliser la fonction avec le param&amp;egrave;tre suivant :
HLitPremier(SD,&amp;nbsp; hSansRafra&amp;icirc;chir)  Et effectivement, le log
g&amp;eacute;n&amp;eacute;ral ne mentionnait plus qu&amp;rsquo;une seule
ex&amp;eacute;cution apr&amp;egrave;s cette correction de code Windev !
J&amp;rsquo;esp&amp;egrave;re que cette information vous sera utile pour vos
devs Windev existants ou &amp;agrave; venir. N&amp;rsquo;h&amp;eacute;sitez pas
&amp;agrave; nous faire un retour si vous aviez d&amp;eacute;j&amp;agrave;
rencontr&amp;eacute; ce probl&amp;egrave;me ou pour tout retour
d&amp;rsquo;exp&amp;eacute;rience Windev / MySQL. Un grand merci &amp;agrave; toute
l&amp;rsquo;&amp;eacute;quipe qui se reconnaitra et &amp;agrave; bient&amp;ocirc;t sur
le blog de capdata. C&amp;eacute;dric Documentation sur le log des
requ&amp;ecirc;tes lentes :
http://dev.mysql.com/doc/refman/5.1/en/slow-query-log.html Documentation
sur le log g&amp;eacute;n&amp;eacute;ral :
&amp;nbsp;http://dev.mysql.com/doc/refman/5.1/en/query-log.html
Documentation Windev : http://doc.pcsoft.fr/fr-FR/Autres articles
&amp;agrave; d&amp;eacute;couvrir sur le blog :  R&amp;egrave;gles
d&amp;rsquo;installation de base (&amp;eacute;pisode 1) (David BAFFALEUF) [SQL
Server] Un trigger fait-il parti d&amp;rsquo;une transaction ?
(C&amp;eacute;dric PEINTRE) [G&amp;eacute;n&amp;eacute;ralMySQLOracleSQL
ServerSybase] Abonnez-vous au blog de la CapData team ! (C&amp;eacute;dric
PEINTRE) [G&amp;eacute;n&amp;eacute;ralMySQLOracleSQL ServerSybase]
Int&amp;eacute;r&amp;ecirc;t de cr&amp;eacute;er des indexes cluster uniques (David
BAFFALEUF) [SQL Server] Que faire des &amp;laquo;&amp;nbsp;[Warning] Aborted
connection&amp;nbsp;&amp;raquo; avec MySQL ? (C&amp;eacute;dric PEINTRE) [MySQL]</description>
      <pubDate>Thu, 15 Jul 2010 08:43:16 GMT</pubDate>
      <guid isPermaLink="false">http://blog.capdata.fr/?p=1094</guid>
      <dc:date>2010-07-15T08:43:16Z</dc:date>
    </item>
    <item>
      <title>Outils d’analyse de requêtes lentes – mysqldumpslow</title>
      <link>http://www.dbnewz.com/?p=601</link>
      <description>Nous avons vu dans un pr&amp;eacute;c&amp;eacute;dent article comment tracer les
requ&amp;ecirc;tes lentes avec MySQL et quelles sont les possibilit&amp;eacute;s
selon la version du serveur. Si vous avez activ&amp;eacute; le journal des
requ&amp;ecirc;tes lentes, vous avez sans doute recueilli un certain nombre
de requ&amp;ecirc;tes qu&amp;rsquo;il faut maintenant analyser afin de pouvoir
les optimiser ou afin de [...]</description>
      <pubDate>Thu, 08 Jul 2010 15:15:22 GMT</pubDate>
      <guid isPermaLink="false">http://www.dbnewz.com/?p=601</guid>
      <dc:date>2010-07-08T15:15:22Z</dc:date>
    </item>
    <item>
      <title>Outils d?analyse de requ�tes lentes ? mysqldumpslow</title>
      <link>http://www.dbnewz.com/?p=601</link>
      <description>Nous avons vu dans un pr&amp;eacute;c&amp;eacute;dent article comment tracer les
requ&amp;ecirc;tes lentes avec MySQL et quelles sont les possibilit&amp;eacute;s
selon la version du serveur. Si vous avez activ&amp;eacute; le journal des
requ&amp;ecirc;tes lentes, vous avez sans doute recueilli un certain nombre
de requ&amp;ecirc;tes qu&amp;rsquo;il faut maintenant analyser afin de pouvoir
les optimiser ou afin de [...]</description>
      <pubDate>Thu, 08 Jul 2010 15:15:22 GMT</pubDate>
      <guid isPermaLink="false">http://www.dbnewz.com/?p=601</guid>
      <dc:date>2010-07-08T15:15:22Z</dc:date>
    </item>
    <item>
      <title>"Comment invoquer les As du Libre" selon Sensio Labs</title>
      <link>http://www.toolinux.com/lininfo/toolinux-information/services/article/comment-invoquer-les-as-du-libre</link>
      <description>&lt;p&gt;L'&amp;eacute;diteur de Symfony lance un service &amp;quot;expert&amp;quot;
  centr&amp;eacute; sur l'intervention personnalis&amp;eacute;e de gurus Open
  Source (PHP, Symfony, MySQL).&lt;/p&gt;
  - &lt;a href="http://www.toolinux.com/lininfo/toolinux-information/services/"&gt;Services&lt;/a&gt;</description>
      <pubDate>Tue, 06 Jul 2010 22:26:00 GMT</pubDate>
      <guid isPermaLink="false">http://www.toolinux.com/lininfo/toolinux-information/services/article/comment-invoquer-les-as-du-libre</guid>
      <dc:date>2010-07-06T22:26:00Z</dc:date>
    </item>
    <item>
      <title>acteurs &gt; Fusion Oracle / Sun : le fondateur de MySQL fait appel en Europe</title>
      <link>http://www.journaldunet.com/solutions/breve/acteurs/47688/fusion-oracle---sun---le-fondateur-de-mysql-fait-appel-en-europe.shtml</link>
      <description>L'information a &amp;eacute;t&amp;eacute; d&amp;eacute;voil&amp;eacute;e par le
Financial Times. Le fondateur de MySQL a d&amp;eacute;cid&amp;eacute; de faire
appel de la d&amp;eacute;cision de la Comm...</description>
      <pubDate>Tue, 06 Jul 2010 10:56:08 GMT</pubDate>
      <guid isPermaLink="false">http://www.journaldunet.com/solutions/breve/acteurs/47688/fusion-oracle---sun---le-fondateur-de-mysql-fait-appel-en-europe.shtml</guid>
      <dc:date>2010-07-06T10:56:08Z</dc:date>
    </item>
    <item>
      <title>SkySQL : une alternative au support MySQL d?Oracle</title>
      <link>http://www.linformaticien.com/Actualit�s/tabid/58/newsid496/8648/skysql-une-alternative-au-support-mysql-d-oracle/Default.aspx</link>
      <description>Les utilisateurs de MySQL ont d&amp;eacute;sormais une alternative pour le
support de la base de donn&amp;eacute;es : la startup SkySQL.</description>
      <pubDate>Tue, 06 Jul 2010 10:09:01 GMT</pubDate>
      <guid isPermaLink="false">http://www.linformaticien.com/Actualit�s/tabid/58/newsid496/8648/skysql-une-alternative-au-support-mysql-d-oracle/Default.aspx</guid>
      <dc:date>2010-07-06T10:09:01Z</dc:date>
    </item>
    <item>
      <title>MySQL : Monty Widenius ne d�sarme pas face � Oracle</title>
      <link>http://www.generation-nt.com/oracle-sun-microsystems-mysql-monty-widenius-appel-actualite-1046051.html</link>
      <description>Le fondateur de MySQL a fait appel de la d&amp;eacute;cision de
l'autorit&amp;eacute; antitrust europ&amp;eacute;enne qui a donn&amp;eacute; son feu
vert &amp;agrave; l'acquisition de Sun Microsystems par Oracle, et donc le
contr&amp;ocirc;le de la base de donn&amp;eacute;es open source MySQL.</description>
      <pubDate>Mon, 05 Jul 2010 08:28:22 GMT</pubDate>
      <guid isPermaLink="false">http://www.generation-nt.com/oracle-sun-microsystems-mysql-monty-widenius-appel-actualite-1046051.html</guid>
      <dc:date>2010-07-05T08:28:22Z</dc:date>
    </item>
    <item>
      <title>CrawlProtect 2.0.0 est sorti</title>
      <link>http://www.phpindex.com/index.php/2010/07/04/6330-crawlprotect-200-est-sorti</link>
      <description>Cette nouvelle version de Crawlprotect est une &amp;eacute;volution majeur
du script de protection anti-piratage. CrawlProtect propose une
protection par htaccess sur mesure et une gestion des droit sur vos
r&amp;eacute;pertoires et fichiers en quelques clics. Avec cette nouvelle
version le script propose l'utilisation d'une base MySQL lorsque votre
serveur interdit &amp;agrave; php d'&amp;eacute;crire dans des fichiers (serveur
prot&amp;eacute;g&amp;eacute; par Suhosin par exemple). Vous y trouverez aussi
les logs des tentatives de piratage et une page d&amp;eacute;di&amp;eacute;e
&amp;agrave; la gestion des droits sur vos fichiers proposant de nouvelles
options de s&amp;eacute;lection et de trie.  Vous trouverez plus d'info sur
le site du script: http://www.crawlprotect.com/fr Propos&amp;eacute; par
Jean-Denis Brun</description>
      <pubDate>Sun, 04 Jul 2010 18:44:23 GMT</pubDate>
      <guid isPermaLink="false">http://www.phpindex.com/index.php/2010/07/04/6330-crawlprotect-200-est-sorti</guid>
      <dc:date>2010-07-04T18:44:23Z</dc:date>
    </item>
    <item>
      <title>CERTA-2010-AVI-294 : Vuln�rabilit� de MySQL (29 juin 2010)</title>
      <link>http://www.certa.ssi.gouv.fr/site/CERTA-2010-AVI-294/CERTA-2010-AVI-294.html</link>
      <description>Une vuln&amp;eacute;rabilit&amp;eacute; de MySQL permet &amp;agrave; un utilisateur
malveillant de modifier l'arborescence et provoquer un d&amp;eacute;ni de
service &amp;agrave; distance.</description>
      <pubDate>Tue, 29 Jun 2010 23:11:59 GMT</pubDate>
      <guid isPermaLink="false">http://www.certa.ssi.gouv.fr/site/CERTA-2010-AVI-294/CERTA-2010-AVI-294.html</guid>
      <dc:date>2010-06-29T23:11:59Z</dc:date>
    </item>
    <item>
      <title>Un test grandeur nature de restauration des donn�es sous Synerway</title>
      <link>http://www.toolinux.com/lininfo/toolinux-information/communique/article/un-test-grandeur-nature-de</link>
      <description>&lt;p&gt;Chez Hoya Lens France, il y a encore peu, les sauvegardes du
  syst&amp;egrave;me d'information s'op&amp;eacute;raient avec un lecteur de
  bandes sur les bases de donn&amp;eacute;es de production et de commandes
  Oracle 10g et sur les bases de donn&amp;eacute;es &amp;laquo; satellites
  &amp;raquo; MySQL. Elles se faisaient mensuellement en incr&amp;eacute;mentale.&lt;/p&gt;
  - &lt;a href="http://www.toolinux.com/lininfo/toolinux-information/communique/"&gt;Communiqu&amp;eacute;&lt;/a&gt;</description>
      <pubDate>Tue, 29 Jun 2010 22:00:00 GMT</pubDate>
      <guid isPermaLink="false">http://www.toolinux.com/lininfo/toolinux-information/communique/article/un-test-grandeur-nature-de</guid>
      <dc:date>2010-06-29T22:00:00Z</dc:date>
    </item>
    <item>
      <title>MySQL Admin Cookbook</title>
      <link>http://dasini.net/blog/?p=941</link>
      <description>MySQL Admin Cookbook est un livre qui s&amp;rsquo;adresse aussi bien
&amp;agrave; l&amp;rsquo;administrateur de base de donn&amp;eacute;es
d&amp;eacute;butant qu&amp;rsquo; &amp;agrave; celui qui cherche &amp;agrave;
am&amp;eacute;liorer ses comp&amp;eacute;tences techniques. Avec son contenu
riche en exemples pr&amp;ecirc;ts &amp;agrave; l&amp;rsquo;emploi,
pr&amp;eacute;sent&amp;eacute;s sous la forme de &amp;laquo;&amp;nbsp;recettes de
cuisine&amp;nbsp;&amp;raquo; (qui permet d&amp;rsquo;associer une
probl&amp;eacute;matique donn&amp;eacute;e &amp;agrave; sa solution), MySQL Admin
Cookbook se veut r&amp;eacute;solument orient&amp;eacute; pratique,
d&amp;rsquo;ailleurs &amp;nbsp;les exemples et les astuces y sont
l&amp;eacute;gions. Les principaux th&amp;egrave;mes abord&amp;eacute;s sont:  La
r&amp;eacute;plication Les index Sauvegarde et restauration Gestion des
donn&amp;eacute;es et des utilisateurs La supervision Configuration de MySQL
J&amp;rsquo;ai bien aim&amp;eacute;: la vari&amp;eacute;t&amp;eacute; des sujets et
l&amp;rsquo;angle pratique abord&amp;eacute;. J&amp;rsquo;ai moins aim&amp;eacute;:
certaines parties un peu basique Le site de
l&amp;rsquo;&amp;eacute;diteur:&amp;nbsp;Packt Publishing Limited MySQL Admin
Cookbook  Editeur : Packt Publishing Limited Langue : Anglais ISBN-13:
978-1-847197-96-2 ISBN : 1847197965 376 pages Auteurs: Daniel Schneller,
Udo Schwedt Sortie: Mars 2010</description>
      <pubDate>Tue, 29 Jun 2010 12:49:39 GMT</pubDate>
      <guid isPermaLink="false">http://dasini.net/blog/?p=941</guid>
      <dc:date>2010-06-29T12:49:39Z</dc:date>
    </item>
    <item>
      <title>Oracle lance Application Express 4</title>
      <link>http://www.lephpfacile.com/news/6918-oracle-lance-application-express-4</link>
      <description>La version 4 d'Oracle Application Express (Apex) est attendue depuis
longtemps. En pr&amp;eacute;-version depuis d&amp;eacute;cembre 2009 et la
sortie de la version 3.2, Apex 4 est la toute derni&amp;egrave;re mouture de
ce qu'on connaissait auparavant sous le nom Oracle HTML DB. C'est un
outil gratuit utilisable depuis un navigateur, qui permet la
cr&amp;eacute;ation d'interfaces web et de bases de donn&amp;eacute;es
li&amp;eacute;es rapidement.&lt;br /&gt;
&lt;br /&gt;
 La nouvelle version prend en charge les th&amp;egrave;mes, les plugins, le
d&amp;eacute;veloppement collaboratif, l'interaction AJAX avec les processus
c&amp;ocirc;t&amp;eacute; client (sans Javascript), et peut interagir avec les
services web REST. Les fonctionnalit&amp;eacute;s sous-jacentes de rapports
SQL et de cr&amp;eacute;ation de tableaux ont aussi &amp;eacute;t&amp;eacute; mises
&amp;agrave; jour, et offrent maintenant des tableaux type diagramme de
Gantt, ainsi que des cartes exportables en Flash.&lt;br /&gt;
&lt;br /&gt;
 La fonctionnalit&amp;eacute; mise en avant par Oracle, c'est Websheets, un
panel de templates extensibles pour cr&amp;eacute;er des pages interactives
avec des grilles de donn&amp;eacute;es, des formulaires de recherche, des
outils de virtualisation, des barres de navigation, etc. Cela permet de
cr&amp;eacute;er rapidement un site d'allure professionnelle... Avec le
risque de cr&amp;eacute;er une s&amp;eacute;rie de sites estampill&amp;eacute;s APEX
dans leur design.&lt;br /&gt;
&lt;br /&gt;
 APEX fonctionne uniquement sur les front-ends Oracle, ce qui peut
rendre la recherche d'un h&amp;eacute;bergeur plus compliqu&amp;eacute;e qu'avec
une combinaison classique PHP / MySQL.</description>
      <pubDate>Thu, 24 Jun 2010 20:18:00 GMT</pubDate>
      <guid isPermaLink="false">http://www.lephpfacile.com/news/6918-oracle-lance-application-express-4</guid>
      <dc:date>2010-06-24T20:18:00Z</dc:date>
    </item>
    <item>
      <title>Abonnez-vous au blog de la CapData team !</title>
      <link>http://blog.capdata.fr/?p=1080</link>
      <description>Bonjour &amp;agrave; tous, Juste un petit post pour vous rappeler les
diff&amp;eacute;rentes m&amp;eacute;thodes vous permettant de suivre
l&amp;rsquo;activit&amp;eacute; d&amp;eacute;bordante du blog de la capdata team :
Acc&amp;egrave;s standard via la page web : http://blog.capdata.fr Vous
abonner au flux RSS du blog et &amp;ecirc;tre ainsi pr&amp;eacute;venu de
l&amp;rsquo;arriv&amp;eacute;e des nouveaux articles :
http://feeds.feedburner.com/CapDataTeamBlog Nous suivre sur Twitter pour
retrouver l&amp;rsquo;actualit&amp;eacute; des bases de donn&amp;eacute;es :
http://twitter.com/capdata_blog  Vous &amp;ecirc;tes de plus en plus
nombreux &amp;agrave; nous suivre sur ce blog technique autour des bases de
donn&amp;eacute;es et nous vous en remercions. J&amp;rsquo;en profite pour vous
proposer quelques articles qui semblent avoir remport&amp;eacute;s un vif
succ&amp;egrave;s derni&amp;egrave;rement :
http://blog.capdata.fr/index.php/jeux-de-caracteres-unicode-et-base-de-donnees/
http://blog.capdata.fr/index.php/installation-oracle-11gr2-64-bits-sur-red-hat-5-partie-1/
http://blog.capdata.fr/index.php/modifier-la-collation-dune-base-sql-2005/
http://blog.capdata.fr/index.php/mysql-et-les-tables-temporaires-internes/
http://blog.capdata.fr/index.php/sybase-ase-direct-io-dsync-onoff-raw-device/
Encore une fois, n&amp;rsquo;h&amp;eacute;sitez pas &amp;agrave; poster vos
commentaires sur les articles, l&amp;rsquo;&amp;eacute;change est la richesse du
contenu. A bient&amp;ocirc;t sur le blog de la capdata team !Autres articles
&amp;agrave; d&amp;eacute;couvrir sur le blog :  Scruter les journaux
d&amp;rsquo;&amp;eacute;v&amp;egrave;nements Windows avec LogParser (David
BAFFALEUF) [SQL Server] Int&amp;eacute;r&amp;ecirc;t de cr&amp;eacute;er des indexes
cluster uniques (David BAFFALEUF) [SQL Server] Que faire des
&amp;laquo;&amp;nbsp;[Warning] Aborted connection&amp;nbsp;&amp;raquo; avec MySQL ?
(C&amp;eacute;dric PEINTRE) [MySQL] Planification dans Adaptive Server
(David BAFFALEUF) [Sybase] Modes de r&amp;eacute;cup&amp;eacute;ration et
journal de transactions, &amp;eacute;pisode 1 (David BAFFALEUF) [SQL Server]</description>
      <pubDate>Wed, 23 Jun 2010 11:48:49 GMT</pubDate>
      <guid isPermaLink="false">http://blog.capdata.fr/?p=1080</guid>
      <dc:date>2010-06-23T11:48:49Z</dc:date>
    </item>
    <item>
      <title>Du nouveau avec Eclipse</title>
      <link>http://www.nexen.net/actualites/php/19705-du_nouveau_avec_eclipse.php</link>
      <description>Eclipse est une plateforme de d&amp;eacute;veloppement pour de nombreux
langages. Comme chaque ann&amp;eacute;e, le grand  rassemblement autour de
celui-ci a lieu.  Cette ann&amp;eacute;e, les nombreux points marquants sont
:  Une &amp;eacute;tude montre que Eclipe est plus utilis&amp;eacute;e sur Linux
et Mac.  Les 3 langages les plus utilis&amp;eacute;s sont : Java, C/C++ et
PHP. Dans les autres cat&amp;eacute;gories, les grands gagnants sont Jquery,
Apache Tomcat, MySQL. Dans les prochains jours (exactement le 23 juin),
la nouvelle version de Eclipse 3.5 sera d&amp;eacute;voil&amp;eacute;e avec
l'ensemble des nouveaut&amp;eacute;s. La nouvelle g&amp;eacute;n&amp;eacute;ration
de Eclipse (version 4) sera aussi disponible tr&amp;egrave;s
prochainement.&amp;nbsp;De plus en plus de d&amp;eacute;veloppeurs Eclipse sur
Linux (0 visite)</description>
      <pubDate>Mon, 21 Jun 2010 00:06:17 GMT</pubDate>
      <guid isPermaLink="false">http://www.nexen.net/actualites/php/19705-du_nouveau_avec_eclipse.php</guid>
      <dc:date>2010-06-21T00:06:17Z</dc:date>
    </item>
    <item>
      <title>Du nouveau avec Eclipse</title>
      <link>http://www.nexen.net/content/view/19705/165/</link>
      <description>Eclipse est une plateforme de d&amp;eacute;veloppement de diff&amp;eacute;rents
langages. Comme chaque ann&amp;eacute;e, le grand  rassemblement autour de
celui-ci &amp;agrave; lieu. Cette ann&amp;eacute;e, de nombreux points marquants
sont :  L'&amp;eacute;tude 2010 montre que Eclipe est plus utilis&amp;eacute;
sur Linux et Mac et que les 3 langages les plus utilis&amp;eacute;s sont :
Java, C/C++ et PHP. Dans les autres cat&amp;eacute;gories, les grands
gagnants sont Jquery, Apache Tomcat, MySQL Dans les prochains jours
(exactement le 23 juin), la nouvelle version de Eclipse 3.5 sera
d&amp;eacute;voil&amp;eacute;e avec l'ensemble des nouveaut&amp;eacute;s. La
nouvelle g&amp;eacute;n&amp;eacute;ration de Eclipse (version 4) sera aussi
disponible tr&amp;egrave;s prochainement.&amp;nbsp;De plus en plus de
d&amp;eacute;veloppeurs Eclipse sur Linux (0 visite)</description>
      <pubDate>Mon, 21 Jun 2010 00:06:17 GMT</pubDate>
      <guid isPermaLink="false">http://www.nexen.net/content/view/19705/165/</guid>
      <dc:date>2010-06-21T00:06:17Z</dc:date>
    </item>
    <item>
      <title>"Concevez votre site web avec PHP et MySQL" disponible en librairie</title>
      <link>http://www.toolinux.com/lininfo/toolinux-information/livres/article/concevez-votre-site-web-avec-php</link>
      <description>&lt;p&gt;R&amp;eacute;dig&amp;eacute; par Mathieu Nebra, &amp;quot;Concevez votre site web
  avec PHP et MySQL&amp;quot; souhaite &amp;quot;initier en douceur et avec
  humour&amp;quot; &amp;agrave; la cr&amp;eacute;ation d'un site web dynamique, avec
  son propre blog et son espace membres. C&lt;/p&gt;
  - &lt;a href="http://www.toolinux.com/lininfo/toolinux-information/livres/"&gt;Livres&lt;/a&gt;</description>
      <pubDate>Sun, 20 Jun 2010 22:45:00 GMT</pubDate>
      <guid isPermaLink="false">http://www.toolinux.com/lininfo/toolinux-information/livres/article/concevez-votre-site-web-avec-php</guid>
      <dc:date>2010-06-20T22:45:00Z</dc:date>
    </item>
    <item>
      <title>Encore un nouveau livre sur MySQL !</title>
      <link>http://www.dbnewz.com/?p=597</link>
      <description>Apr&amp;egrave;s l&amp;rsquo;excellent &amp;laquo;&amp;nbsp;MySQL5, Audit et
optimisation&amp;nbsp;&amp;raquo; sorti fin mars, voici un nouveau livre pour
vous occuper sur la plage cet &amp;eacute;t&amp;eacute; : MySQL5, Administration
et optimisation. Pour vous mettre l&amp;rsquo;eau &amp;agrave; la bouche, la
TDM_MySQL5_Admin_Optim et un Extrait_MySQL5_Admin_Optim consacr&amp;eacute;
aux verrous et transactions sont disponibles Le livre est bien s&amp;ucirc;r
disponible dans toutes les bonnes librairies informatiques [...]</description>
      <pubDate>Fri, 18 Jun 2010 14:18:57 GMT</pubDate>
      <guid isPermaLink="false">http://www.dbnewz.com/?p=597</guid>
      <dc:date>2010-06-18T14:18:57Z</dc:date>
    </item>
    <item>
      <title>Hoya Lens France restaure ses donn�es avec l'appliance Synerway</title>
      <link>http://www.toolinux.com/lininfo/toolinux-information/developpement/article/hoya-lens-france-restaure-ses</link>
      <description>&lt;p&gt;Comment Hoya Lens France est pass&amp;eacute;e d'une restauration sur
  bandes depuis Oracle 10g et MySQL &amp;agrave; Synerway.&lt;/p&gt;
  - &lt;a
  href="http://www.toolinux.com/lininfo/toolinux-information/developpement/"&gt;D&amp;eacute;veloppement &lt;/a&gt;</description>
      <pubDate>Wed, 16 Jun 2010 22:11:00 GMT</pubDate>
      <guid isPermaLink="false">http://www.toolinux.com/lininfo/toolinux-information/developpement/article/hoya-lens-france-restaure-ses</guid>
      <dc:date>2010-06-16T22:11:00Z</dc:date>
    </item>
    <item>
      <title>Atutor</title>
      <link>http://www.nexen.net/actualites/php/19699-atutor.php</link>
      <description>Atutor est une application &amp;eacute;crite en PHP et MySQL. Il s'agit d'un
LCMS/LMS (Learning Content Management System) . Cet application
poss&amp;egrave;de de nombreuses fonctionnalit&amp;eacute;s comme :
L'accessibilit&amp;eacute; R&amp;eacute;seau social S&amp;eacute;curit&amp;eacute; Les
cours La messagerie Les Profils Stockage Logs R&amp;eacute;dactions Outils
etc&amp;nbsp;ATutor (0 visite)</description>
      <pubDate>Thu, 10 Jun 2010 01:15:39 GMT</pubDate>
      <guid isPermaLink="false">http://www.nexen.net/actualites/php/19699-atutor.php</guid>
      <dc:date>2010-06-10T01:15:39Z</dc:date>
    </item>
    <item>
      <title>CERTA-2010-AVI-238 : Multiples vuln�rabilit�s dans MySQL Enterprise Monitor (04 juin 2010)</title>
      <link>http://www.certa.ssi.gouv.fr/site/CERTA-2010-AVI-238/CERTA-2010-AVI-238.html</link>
      <description>De multiples injections de requ&amp;ecirc;tes ill&amp;eacute;gitimes par rebond
ont &amp;eacute;t&amp;eacute; d&amp;eacute;couvertes dans MySQL Enterprise Monitor.</description>
      <pubDate>Fri, 04 Jun 2010 23:05:29 GMT</pubDate>
      <guid isPermaLink="false">http://www.certa.ssi.gouv.fr/site/CERTA-2010-AVI-238/CERTA-2010-AVI-238.html</guid>
      <dc:date>2010-06-04T23:05:29Z</dc:date>
    </item>
    <item>
      <title>EasyPHP et modules</title>
      <link>http://www.phpindex.com/index.php/2010/06/04/6263-easyphp-et-modules</link>
      <description>Beaucoup de changements et de nouveaut&amp;eacute;s autour d'EasyPHP. En
plus des mises a jour classiques des elements d'EasyPHP (Apache, MySQL,
PhpMyAdmin...), la nouvelle version int&amp;egrave;gre de nouvelles
fonctionnalites. Il est dorenavant possible d'installer des versions
pre-configurees (modules) de WordPress, Spip, Prestashop, Drupal... Ceci
offre un moyen ultra simple et rapide de tester les applications phares
du monde PHP. Rien a configurer, tout se fait automatiquement lors de
l'installation. Pas de limite quant au nombre de modules et au nombre
d'installations du m&amp;ecirc;me module.  Comme toujours, EasyPHP peut
s'installer n'importe ou : disque dur, cle USB ...   Website :
www.easyphp.org Facebook page :
www.facebook.com/pages/EasyPHP/100608599258 Twitter :
www.twitter.com/easyphp Sourceforge :
www.sourceforge.net/projects/quickeasyphp/  Quelques informations sur
les versions actuelles :  L'interface d'administration d'EasyPHP permet
de: - lister le repertoire DocRoot d'Apache - creer/supprimer des alias
- gerer MySQL avec PhpMyAdmin - declarer le TimeZone pour PHP. - exceder
au phpinfo - ...  *EasyPHP 5.3.2i    - PHP 5.3.2    - Apache 2.2.15    -
MySQL 5.1.45    - PhpMyAdmin 3.3.2  *EasyPHP 5.2.10    - PHP 5.2.10    -
Apache 2.2.13    - MySQL 5.1.37    - PhpMyAdmin 3.2.1    - SQLite 2.8.17
- Pecl 5.2.6   EASYPHP MODULES (pour EasyPHP 5.3.2i)   - WordPress 2.9.2
- WordPress 3.0RC1   - Spip 2.1.0   - Prestashop 1.3   - ...
Propos&amp;eacute; par Laurent Abbal</description>
      <pubDate>Fri, 04 Jun 2010 07:08:14 GMT</pubDate>
      <guid isPermaLink="false">http://www.phpindex.com/index.php/2010/06/04/6263-easyphp-et-modules</guid>
      <dc:date>2010-06-04T07:08:14Z</dc:date>
    </item>
    <item>
      <title>EasyPHP et modules (WorPress, Spip, Drupal, Prestashop...)</title>
      <link>http://www.nexen.net/actualites/php/19690-easyphp_et_modules_worpress,_spip,_drupal,_prestashop....php</link>
      <description>Beaucoup de changements et de nouveaut&amp;eacute;s autour d'EasyPHP.  En
plus des mises a jour classiques des elements d'EasyPHP (Apache, MySQL,
PhpMyAdmin...), la nouvelle version int&amp;egrave;gre de nouvelles
fonctionnalites.  Il est dorenavant possible d'installer des versions
pre-configurees (modules) de WordPress, Spip, Prestashop, Drupal... Ceci
offre un moyen ultra simple et rapide de tester les applications phares
du monde PHP. Rien a configurer, tout se fait automatiquement lors de
l'installation. Pas de limite quant au nombre de modules et au nombre
d'installations du m&amp;ecirc;me module.  Comme toujours, EasyPHP peut
s'installer n'importe ou : disque dur, cle USB ...  Modules disponibles
:   - WordPress 2.9.2   - WordPress 3.0RC1   - Spip 2.1.0   - Prestashop
1.3   - ...   &amp;nbsp;EasyPHP (0 visite) &amp;nbsp;EasyPHP Facebook (0 visite)
&amp;nbsp;EasyPHP Twitter (0 visite) &amp;nbsp;EasyPHP Sourceforge (0 visite)</description>
      <pubDate>Fri, 04 Jun 2010 06:22:38 GMT</pubDate>
      <guid isPermaLink="false">http://www.nexen.net/actualites/php/19690-easyphp_et_modules_worpress,_spip,_drupal,_prestashop....php</guid>
      <dc:date>2010-06-04T06:22:38Z</dc:date>
    </item>
    <item>
      <title>Démarrer avec MongoDB</title>
      <link>http://www.nexen.net/actualites/php/19685-demarrer_avec_mongodb.php</link>
      <description>Depuis de nombreux mois, le sujet du NoSQL revient
r&amp;eacute;guli&amp;egrave;rement &amp;agrave; la une, dans les sites
d'actualit&amp;eacute;s, dont MongoDB est associ&amp;eacute;. Travis Swicegood a
publi&amp;eacute; sur son site un r&amp;eacute;sum&amp;eacute; des
conf&amp;eacute;rences, des liens et des tutoriaux qu'il a pu trouver pour
utiliser MongoDB. L'article est tr&amp;egrave;s complet car en plus des
diff&amp;eacute;rents liens, il montre :   Comment installer D&amp;eacute;marrer
un serveur Interaction Ajout d'enregistrements Rechercher des
enregistrements Les probl&amp;egrave;mes pouvant appara&amp;icirc;tre
L'ensemble des ces op&amp;eacute;rations sont effectu&amp;eacute;es en lignes de
commandes, mais vous pouvez effectuer les m&amp;ecirc;mes op&amp;eacute;rations
avec PHP &amp;nbsp;MongoDB: A first look (0 visite)&amp;nbsp;PHP et MongoDB
partie 1 (0 visite)</description>
      <pubDate>Wed, 02 Jun 2010 17:20:36 GMT</pubDate>
      <guid isPermaLink="false">http://www.nexen.net/actualites/php/19685-demarrer_avec_mongodb.php</guid>
      <dc:date>2010-06-02T17:20:36Z</dc:date>
    </item>
    <item>
      <title>Mathieu Nebra : "Concevez votre site web avec PHP et MySQL"</title>
      <link>http://www.toolinux.com/lininfo/toolinux-information/livres/article/mathieu-nebra-concevez-votre-site</link>
      <description>&lt;p&gt;Apr&amp;egrave;s &amp;quot;Apprenez &amp;agrave; programmer en C&amp;quot;, Simple IT
  publie un ouvrage destin&amp;eacute; &amp;agrave; &amp;quot;simplifier&amp;quot; le
  d&amp;eacute;veloppement de sites web dynamiques, &amp;quot;Concevez votre
  site web avec PHP et MySQL.&amp;quot;&lt;/p&gt;
  - &lt;a href="http://www.toolinux.com/lininfo/toolinux-information/livres/"&gt;Livres&lt;/a&gt;</description>
      <pubDate>Mon, 31 May 2010 23:43:00 GMT</pubDate>
      <guid isPermaLink="false">http://www.toolinux.com/lininfo/toolinux-information/livres/article/mathieu-nebra-concevez-votre-site</guid>
      <dc:date>2010-05-31T23:43:00Z</dc:date>
    </item>
    <item>
      <title>Tracer les requêtes lentes</title>
      <link>http://www.nexen.net/actualites/php/19679-tracer_les_requetes_lentes.php</link>
      <description>Le site dbnewz parle d'un point pr&amp;eacute;cis,  touchant l'utilisation
d'une base de donn&amp;eacute;es MySQL. L'article montre comment
rep&amp;eacute;rer les requ&amp;ecirc;tes lentes et surtout les tracer.
L'article explique &amp;eacute;tape par &amp;eacute;tape comment activer le
processus, identifier avec les fonctions de logs actives et bien sur,
corriger pour optimiser les requ&amp;ecirc;tes.&amp;nbsp;Tracer les
requ&amp;ecirc;tes lentes (0 visite)</description>
      <pubDate>Mon, 31 May 2010 18:27:59 GMT</pubDate>
      <guid isPermaLink="false">http://www.nexen.net/actualites/php/19679-tracer_les_requetes_lentes.php</guid>
      <dc:date>2010-05-31T18:27:59Z</dc:date>
    </item>
    <item>
      <title>Tracer les requ�tes lentes</title>
      <link>http://www.nexen.net/actualites/php/19679-tracer_les_requetes_lentes.php</link>
      <description>Le site dbnewz parle d'un point pr&amp;eacute;cis,  touchant l'utilisation
d'une base de donn&amp;eacute;es MySQL. L'article montre comment
rep&amp;eacute;rer les requ&amp;ecirc;tes lentes et surtout les tracer.
L'article explique &amp;eacute;tape par &amp;eacute;tape comment activer le
processus, identifier avec les fonctions de logs actives et bien sur,
corriger pour optimiser les requ&amp;ecirc;tes.&amp;nbsp;Tracer les
requ&amp;ecirc;tes lentes (0 visite)</description>
      <pubDate>Mon, 31 May 2010 18:27:59 GMT</pubDate>
      <guid isPermaLink="false">http://www.nexen.net/actualites/php/19679-tracer_les_requetes_lentes.php</guid>
      <dc:date>2010-05-31T18:27:59Z</dc:date>
    </item>
    <item>
      <title>Tracer les requêtes lentes</title>
      <link>http://www.dbnewz.com/?p=558</link>
      <description>Dans la grande majorit&amp;eacute; des applications, am&amp;eacute;liorer les
requ&amp;ecirc;tes qui mettent le plus de temps &amp;agrave;
s&amp;rsquo;ex&amp;eacute;cuter s&amp;rsquo;av&amp;egrave;re en payant &amp;agrave; tous les
points de vue : les utilisateurs ont un meilleur ressenti de
l&amp;rsquo;application gr&amp;acirc;ce au gain en rapidit&amp;eacute;, la charge du
serveur baisse car les requ&amp;ecirc;tes lentes ont souvent pour origine un
plan d&amp;rsquo;ex&amp;eacute;cution co&amp;ucirc;teux et finalement le serveur est
capable d&amp;rsquo;accepter plus de connexions qu&amp;rsquo;auparavant. Mais
avant de pouvoir corriger ces requ&amp;ecirc;tes lentes, encore faut-il les
rep&amp;eacute;rer afin de les analyser. C&amp;rsquo;est pourquoi je vous
propose dans cet article de faire le point sur le slow query log, soit
en fran&amp;ccedil;ais plus correct le journal des requ&amp;ecirc;tes lentes.
Tout d&amp;rsquo;abord, il faut savoir que la version 5.1 a apport&amp;eacute;
pas mal de changements par rapport aux possibilit&amp;eacute;s offertes
jusqu&amp;rsquo;alors. Mais pour que les choses restent claires, nous allons
commencer par pr&amp;eacute;senter les options disponibles en 5.0. Le but du
journal des requ&amp;ecirc;tes lentes, quelle que soit la version de MySQL,
est de tracer l&amp;rsquo;ensemble des requ&amp;ecirc;tes qui sont jug&amp;eacute;es
lentes, c&amp;rsquo;est-&amp;agrave;-dire dont le temps d&amp;rsquo;ex&amp;eacute;cution
est sup&amp;eacute;rieur &amp;agrave; une certaine limite. Ce qui est
int&amp;eacute;ressant dans ce journal, c&amp;rsquo;est que le serveur
&amp;eacute;crit les requ&amp;ecirc;tes apr&amp;egrave;s leur ex&amp;eacute;cution, ce
qui permet de disposer de pas mal d&amp;rsquo;informations
int&amp;eacute;ressantes. Remarquez que c&amp;rsquo;est logique&amp;nbsp;: on ne
peut bien s&amp;ucirc;r pas savoir avant de l&amp;rsquo;avoir
ex&amp;eacute;cut&amp;eacute;e si une requ&amp;ecirc;te est lente ou pas &amp;hellip;
L&amp;rsquo;activation/d&amp;eacute;sactivation du journal se fait avec la
variable log_slow_queries. Par d&amp;eacute;faut, celle-ci est &amp;agrave; OFF
: mysql&amp;gt; SHOW VARIABLES LIKE 'log_slow_queries';
+------------------+-------+ | Variable_name &amp;nbsp;&amp;nbsp;       | Value
| +------------------+-------+ | log_slow_queries | OFF &amp;nbsp;    |
+------------------+-------+  La variable ne peut pas &amp;ecirc;tre
modifi&amp;eacute;e dynamiquement, le mieux est donc d&amp;rsquo;aller
&amp;eacute;diter le fichier my.cnf :  [mysqld] log_slow_queries  puis de
red&amp;eacute;marrer le serveur. Notez que si vous ne pr&amp;eacute;cisez aucun
chemin, le journal est cr&amp;eacute;&amp;eacute; dans le r&amp;eacute;pertoire de
donn&amp;eacute;es (ce qui n&amp;rsquo;est pas id&amp;eacute;al) et porte le nom
hostname-slow.log. Le mieux est donc de pr&amp;eacute;ciser un chemin
absolu, par exemple :  [mysqld] log_slow_queries =
/var/log/mysql/mysql-slow.log  La seconde option importante &amp;agrave;
configurer est la dur&amp;eacute;e &amp;agrave; partir de laquelle une
requ&amp;ecirc;te est consid&amp;eacute;r&amp;eacute;e comme lente. Ce
r&amp;eacute;glage se fait avec la variable long_query_time, qui peut
&amp;ecirc;tre modifi&amp;eacute;e dynamiquement :  mysql&amp;gt; SHOW GLOBAL
VARIABLES LIKE 'long_query_time'; +-----------------+-------+ |
Variable_name &amp;nbsp;  | Value | +-----------------+-------+ |
long_query_time | 10 &amp;nbsp;&amp;nbsp;    | +-----------------+-------+ 1 row
in set (0.00 sec)   mysql&amp;gt; SET @@global.long_query_time = 5; Query
OK, 0 rows affected (0.00 sec)  mysql&amp;gt; SHOW GLOBAL VARIABLES LIKE
'long_query_time'; +-----------------+-------+ | Variable_name &amp;nbsp;  |
Value | +-----------------+-------+ | long_query_time | 5 &amp;nbsp; &amp;nbsp;
| +-----------------+-------+ 1 row in set (0.00 sec) Munis de ces
informations, nous pouvons maintenant &amp;eacute;crire une requ&amp;ecirc;te
lente :  mysql&amp;gt; SELECT SLEEP(15);  et voir ce qui se trouve dans le
journal :  # Time: 100528 11:48:13 # User@Host: msandbox[msandbox] @
localhost [] # Query_time: 15  Lock_time: 0  Rows_sent: 1
Rows_examined: 0 SELECT SLEEP(15);  Les informations des 2
premi&amp;egrave;res lignes (date et utilisateur) permettent, en utilisant
des outils existants ou avec son propre script, de regrouper les
&amp;eacute;v&amp;eacute;nements pour d&amp;eacute;terminer s&amp;rsquo;il y a plus de
requ&amp;ecirc;tes lentes certains jours ou &amp;agrave; certains moments de la
journ&amp;eacute;e, ou encore si un utilisateur provoque plus de
requ&amp;ecirc;tes lentes que les autres. La 3&amp;egrave; ligne est
particuli&amp;egrave;rement int&amp;eacute;ressante puisqu&amp;rsquo;en plus du
temps d&amp;rsquo;ex&amp;eacute;cution de la requ&amp;ecirc;te, nous avons le temps
perdu &amp;agrave; cause des verrous et nous pouvons comparer le nombre de
lignes renvoy&amp;eacute;es au nombre de lignes examin&amp;eacute;es. Un examen
rapide de ces informations nous permet donc rapidement de savoir si la
requ&amp;ecirc;te est lente &amp;agrave; cause d&amp;rsquo;une contention sur les
ressources (Lock_time &amp;eacute;lev&amp;eacute;) ou si
l&amp;rsquo;ex&amp;eacute;cution est loin d&amp;rsquo;&amp;ecirc;tre optimale
(Rows_examined &amp;eacute;lev&amp;eacute; par rapport &amp;agrave; Rows_sent). Un
exemple r&amp;eacute;el plus parlant ? En voici un :  # Time: 100401
6:30:14 # User@Host: xxx[xxx] @ backoffice.xxx [10.xxx.xxx.xxx] #
Query_time: 12.012118  Lock_time: 0.000660 Rows_sent: 0  Rows_examined:
359462  Ici, on voit tout de suite que le plan d&amp;rsquo;ex&amp;eacute;cution
m&amp;eacute;riterait d&amp;rsquo;&amp;ecirc;tre revue : le serveur lit 360 000
lignes pour en retourner &amp;hellip; 0 ! Du c&amp;ocirc;t&amp;eacute; des
limitations en 5.0, 3 points sont &amp;agrave; noter : outre le fait de ne
pas pouvoir activer/d&amp;eacute;sactiver le journal sans devoir
red&amp;eacute;marrer le serveur, les requ&amp;ecirc;tes ex&amp;eacute;cut&amp;eacute;es
sur un slave par le thread de r&amp;eacute;plication ne sont jamais
trac&amp;eacute;es dans le journal et la valeur de la variable
long_query_time est n&amp;eacute;cessairement un entier. Ces deux derniers
points ont des cons&amp;eacute;quences g&amp;ecirc;nantes :  si vous activez le
journal sur un slave mais pas sur le master, vous risquez de passer
&amp;agrave; c&amp;ocirc;t&amp;eacute; de requ&amp;ecirc;tes de mises &amp;agrave; jour qui
sont lentes, les mises &amp;agrave; jour &amp;eacute;tant toutes
ex&amp;eacute;cut&amp;eacute;es par le thread de r&amp;eacute;plication si votre
application est d&amp;eacute;j&amp;agrave; bien optimis&amp;eacute;e, votre journal
sera probablement vide car vous n&amp;rsquo;aurez plus aucune requ&amp;ecirc;te
s&amp;rsquo;ex&amp;eacute;cutant en plus d&amp;rsquo;une seconde : si vous souhaitez
malgr&amp;eacute; tout rep&amp;eacute;rer les requ&amp;ecirc;tes les plus longues
&amp;agrave; ex&amp;eacute;cuter, il faudra trouver un autre moyen pour les
tracer  Il existe encore 2 autres options disponibles : la
possibilit&amp;eacute; de tracer les requ&amp;ecirc;tes
&amp;laquo;&amp;nbsp;administratives&amp;nbsp;&amp;raquo; (par exemple, REPAIR TABLE)
qui sont lentes ou encore la possibilit&amp;eacute; de tracer les
requ&amp;ecirc;tes n&amp;rsquo;utilisant pas d&amp;rsquo;index, quel que soit leur
temps d&amp;rsquo;ex&amp;eacute;cution. Il suffit pour cela de renseigner
l&amp;rsquo;une ou l&amp;rsquo;autre des variables dans le fichier my.cnf :
[mysqld] log-slow-admin-statements log-queries-not-using-indexes
L&amp;rsquo;option log-queries-not-using-indexes m&amp;eacute;rite quand
m&amp;ecirc;me qu&amp;rsquo;on s&amp;rsquo;y attarde un peu&amp;hellip; En effet, cette
option va en r&amp;eacute;alit&amp;eacute; tracer les requ&amp;ecirc;tes qui
parcourent toutes les lignes d&amp;rsquo;une table, peu importe si ce
parcours se fait ou non avec un index. Pas tr&amp;egrave;s clair ? Prenons
un exemple. Voici 2 structures de table, identiques sauf que l&amp;rsquo;une
a pour moteur InnoDB et l&amp;rsquo;autre MyISAM :  CREATE TABLE t1 ( id
int(11) NOT NULL auto_increment, PRIMARY KEY  (id) ) ENGINE=InnoDB
CREATE TABLE t2 ( id int(11) NOT NULL auto_increment, PRIMARY KEY  (id)
) ENGINE=MyISAM Remplissons les tables avec quelques lignes en
r&amp;eacute;p&amp;eacute;tant plusieurs fois les insertions suivantes :
mysql&amp;gt; INSERT INTO t1 (id) VALUES (NULL); mysql&amp;gt; INSERT INTO t2
(id) VALUES (NULL);  Maintenant la requ&amp;ecirc;te suivante va se
retrouver dans le journal des requ&amp;ecirc;tes lentes :  mysql&amp;gt; SELECT
COUNT(*) FROM t1;  alors que celle-ci n&amp;rsquo;y sera pas :  mysql&amp;gt;
SELECT COUNT(*) FROM t2;  Quelle est l&amp;rsquo;explication ? Il suffit de
regarder le plan d&amp;rsquo;ex&amp;eacute;cution donn&amp;eacute; par EXPLAIN. Pour
la table t1, EXPLAIN indique que le plan est de faire un full index scan
alors que pour t2, aucune op&amp;eacute;ration n&amp;rsquo;est n&amp;eacute;cessaire
(donc en particulier aucun index n&amp;rsquo;est utilis&amp;eacute;), le moteur
MyISAM gardant toujours parmi ses m&amp;eacute;ta-donn&amp;eacute;es le nombre
d&amp;rsquo;enregistrements de la table. Dans notre cas, MySQL a donc
trac&amp;eacute; la requ&amp;ecirc;te utilisant un index et ignor&amp;eacute; celle
n&amp;rsquo;en utilisant pas&amp;hellip; Quand je disais que cette option
m&amp;eacute;ritait qu&amp;rsquo;on s&amp;rsquo;y attarde un peu ! Maintenant que
nous avons fait le tour de ce qui est possible en 5.0, voyons ce que la
5.1 a apport&amp;eacute; de neuf. C&amp;rsquo;est simple : que du bon ! Ainsi,
il est d&amp;eacute;sormais possible d&amp;rsquo;activer/d&amp;eacute;sactiver le
journal dynamiquement, de tracer les requ&amp;ecirc;tes lentes dans un
fichier ou dans une table, d&amp;rsquo;indiquer un seuil non plus en
secondes mais en microsecondes et enfin de tracer les requ&amp;ecirc;tes
ex&amp;eacute;cut&amp;eacute;es par le thread de r&amp;eacute;plication ! Dans le
d&amp;eacute;tail, c&amp;rsquo;est un peu plus compliqu&amp;eacute;&amp;hellip; La
variable log_slow_queries a &amp;eacute;t&amp;eacute; remplac&amp;eacute;e par
slow_query_log : c&amp;rsquo;est gr&amp;acirc;ce &amp;agrave; elle que vous
activez/d&amp;eacute;sactivez le journal. Par d&amp;eacute;faut, le journal est
&amp;eacute;crit dans un fichier, dont vous pouvez pr&amp;eacute;ciser le nom
avec la variable slow_query_log_file. Pour &amp;eacute;crire dans une table,
il faut modifier la variable log_output en pr&amp;eacute;cisant TABLE. Vous
pouvez aussi choisir d&amp;rsquo;&amp;eacute;crire &amp;agrave; la fois dans un
fichier et dans une table avec log_output = FILE, TABLE. Attention, la
variable log_output s&amp;rsquo;applique &amp;eacute;galement au journal
g&amp;eacute;n&amp;eacute;ral (general log) si celui-ci est activ&amp;eacute;. Le
seuil d&amp;eacute;crit par long_query_time s&amp;rsquo;&amp;eacute;crit toujours en
secondes, mais avec une pr&amp;eacute;cision pouvant aller
jusqu&amp;rsquo;&amp;agrave; la microseconde. Vous pouvez donc maintenant
d&amp;eacute;finir un seuil de 0.05s : long_query_time = 0.05. Attention, si
vous &amp;eacute;crivez dans une table, la granularit&amp;eacute; redevient la
seconde comme en 5.0 ! Une petite nouveaut&amp;eacute; aussi, vous avez la
possibilit&amp;eacute; de ne tracer que les requ&amp;ecirc;tes qui examinent au
moins un certain nombre de lignes avec la variables
min_examined_row_limit. Enfin, dernier point, la variable
log-slow-slave-statements, disponible &amp;agrave; partir de la 5.1.45
permet de tracer les requ&amp;ecirc;tes lentes ex&amp;eacute;cut&amp;eacute;es par
le thread de r&amp;eacute;plication. Ca y est, vous savez tout sur le
journal des requ&amp;ecirc;tes lentes de MySQL ! Enfin, presque, car si vous
utilisez la version de MySQL patch&amp;eacute;e par Percona, vous trouverez
des informations suppl&amp;eacute;mentaires. Ceci fera sans doute
l&amp;rsquo;objet d&amp;rsquo;un nouvel article. En attendant, nous examinerons
prochainement quels sont les outils disponibles pour analyser les
requ&amp;ecirc;tes lentes.</description>
      <pubDate>Fri, 28 May 2010 14:36:10 GMT</pubDate>
      <guid isPermaLink="false">http://www.dbnewz.com/?p=558</guid>
      <dc:date>2010-05-28T14:36:10Z</dc:date>
    </item>
    <item>
      <title>Tracer les requ�tes lentes</title>
      <link>http://www.dbnewz.com/?p=558</link>
      <description>Dans la grande majorit&amp;eacute; des applications, am&amp;eacute;liorer les
requ&amp;ecirc;tes qui mettent le plus de temps &amp;agrave;
s&amp;rsquo;ex&amp;eacute;cuter s&amp;rsquo;av&amp;egrave;re en payant &amp;agrave; tous les
points de vue : les utilisateurs ont un meilleur ressenti de
l&amp;rsquo;application gr&amp;acirc;ce au gain en rapidit&amp;eacute;, la charge du
serveur baisse car les requ&amp;ecirc;tes lentes ont souvent pour origine un
plan d&amp;rsquo;ex&amp;eacute;cution co&amp;ucirc;teux et finalement le serveur est
capable d&amp;rsquo;accepter plus de connexions qu&amp;rsquo;auparavant. Mais
avant de pouvoir corriger ces requ&amp;ecirc;tes lentes, encore faut-il les
rep&amp;eacute;rer afin de les analyser. C&amp;rsquo;est pourquoi je vous
propose dans cet article de faire le point sur le slow query log, soit
en fran&amp;ccedil;ais plus correct le journal des requ&amp;ecirc;tes lentes.
Tout d&amp;rsquo;abord, il faut savoir que la version 5.1 a apport&amp;eacute;
pas mal de changements par rapport aux possibilit&amp;eacute;s offertes
jusqu&amp;rsquo;alors. Mais pour que les choses restent claires, nous allons
commencer par pr&amp;eacute;senter les options disponibles en 5.0. Le but du
journal des requ&amp;ecirc;tes lentes, quelle que soit la version de MySQL,
est de tracer l&amp;rsquo;ensemble des requ&amp;ecirc;tes qui sont jug&amp;eacute;es
lentes, c&amp;rsquo;est-&amp;agrave;-dire dont le temps d&amp;rsquo;ex&amp;eacute;cution
est sup&amp;eacute;rieur &amp;agrave; une certaine limite. Ce qui est
int&amp;eacute;ressant dans ce journal, c&amp;rsquo;est que le serveur
&amp;eacute;crit les requ&amp;ecirc;tes apr&amp;egrave;s leur ex&amp;eacute;cution, ce
qui permet de disposer de pas mal d&amp;rsquo;informations
int&amp;eacute;ressantes. Remarquez que c&amp;rsquo;est logique&amp;nbsp;: on ne
peut bien s&amp;ucirc;r pas savoir avant de l&amp;rsquo;avoir
ex&amp;eacute;cut&amp;eacute;e si une requ&amp;ecirc;te est lente ou pas &amp;hellip;
L&amp;rsquo;activation/d&amp;eacute;sactivation du journal se fait avec la
variable log_slow_queries. Par d&amp;eacute;faut, celle-ci est &amp;agrave; OFF
: mysql&amp;gt; SHOW VARIABLES LIKE 'log_slow_queries';
+------------------+-------+ | Variable_name &amp;nbsp;&amp;nbsp;       | Value
| +------------------+-------+ | log_slow_queries | OFF &amp;nbsp;    |
+------------------+-------+  La variable ne peut pas &amp;ecirc;tre
modifi&amp;eacute;e dynamiquement, le mieux est donc d&amp;rsquo;aller
&amp;eacute;diter le fichier my.cnf :  [mysqld] log_slow_queries  puis de
red&amp;eacute;marrer le serveur. Notez que si vous ne pr&amp;eacute;cisez aucun
chemin, le journal est cr&amp;eacute;&amp;eacute; dans le r&amp;eacute;pertoire de
donn&amp;eacute;es (ce qui n&amp;rsquo;est pas id&amp;eacute;al) et porte le nom
hostname-slow.log. Le mieux est donc de pr&amp;eacute;ciser un chemin
absolu, par exemple :  [mysqld] log_slow_queries =
/var/log/mysql/mysql-slow.log  La seconde option importante &amp;agrave;
configurer est la dur&amp;eacute;e &amp;agrave; partir de laquelle une
requ&amp;ecirc;te est consid&amp;eacute;r&amp;eacute;e comme lente. Ce
r&amp;eacute;glage se fait avec la variable long_query_time, qui peut
&amp;ecirc;tre modifi&amp;eacute;e dynamiquement :  mysql&amp;gt; SHOW GLOBAL
VARIABLES LIKE 'long_query_time'; +-----------------+-------+ |
Variable_name &amp;nbsp;  | Value | +-----------------+-------+ |
long_query_time | 10 &amp;nbsp;&amp;nbsp;    | +-----------------+-------+ 1 row
in set (0.00 sec)   mysql&amp;gt; SET @@global.long_query_time = 5; Query
OK, 0 rows affected (0.00 sec)  mysql&amp;gt; SHOW GLOBAL VARIABLES LIKE
'long_query_time'; +-----------------+-------+ | Variable_name &amp;nbsp;  |
Value | +-----------------+-------+ | long_query_time | 5 &amp;nbsp; &amp;nbsp;
| +-----------------+-------+ 1 row in set (0.00 sec) Munis de ces
informations, nous pouvons maintenant &amp;eacute;crire une requ&amp;ecirc;te
lente :  mysql&amp;gt; SELECT SLEEP(15);  et voir ce qui se trouve dans le
journal :  # Time: 100528 11:48:13 # User@Host: msandbox[msandbox] @
localhost [] # Query_time: 15  Lock_time: 0  Rows_sent: 1
Rows_examined: 0 SELECT SLEEP(15);  Les informations des 2
premi&amp;egrave;res lignes (date et utilisateur) permettent, en utilisant
des outils existants ou avec son propre script, de regrouper les
&amp;eacute;v&amp;eacute;nements pour d&amp;eacute;terminer s&amp;rsquo;il y a plus de
requ&amp;ecirc;tes lentes certains jours ou &amp;agrave; certains moments de la
journ&amp;eacute;e, ou encore si un utilisateur provoque plus de
requ&amp;ecirc;tes lentes que les autres. La 3&amp;egrave; ligne est
particuli&amp;egrave;rement int&amp;eacute;ressante puisqu&amp;rsquo;en plus du
temps d&amp;rsquo;ex&amp;eacute;cution de la requ&amp;ecirc;te, nous avons le temps
perdu &amp;agrave; cause des verrous et nous pouvons comparer le nombre de
lignes renvoy&amp;eacute;es au nombre de lignes examin&amp;eacute;es. Un examen
rapide de ces informations nous permet donc rapidement de savoir si la
requ&amp;ecirc;te est lente &amp;agrave; cause d&amp;rsquo;une contention sur les
ressources (Lock_time &amp;eacute;lev&amp;eacute;) ou si
l&amp;rsquo;ex&amp;eacute;cution est loin d&amp;rsquo;&amp;ecirc;tre optimale
(Rows_examined &amp;eacute;lev&amp;eacute; par rapport &amp;agrave; Rows_sent). Un
exemple r&amp;eacute;el plus parlant ? En voici un :  # Time: 100401
6:30:14 # User@Host: xxx[xxx] @ backoffice.xxx [10.xxx.xxx.xxx] #
Query_time: 12.012118  Lock_time: 0.000660 Rows_sent: 0  Rows_examined:
359462  Ici, on voit tout de suite que le plan d&amp;rsquo;ex&amp;eacute;cution
m&amp;eacute;riterait d&amp;rsquo;&amp;ecirc;tre revue : le serveur lit 360 000
lignes pour en retourner &amp;hellip; 0 ! Du c&amp;ocirc;t&amp;eacute; des
limitations en 5.0, 3 points sont &amp;agrave; noter : outre le fait de ne
pas pouvoir activer/d&amp;eacute;sactiver le journal sans devoir
red&amp;eacute;marrer le serveur, les requ&amp;ecirc;tes ex&amp;eacute;cut&amp;eacute;es
sur un slave par le thread de r&amp;eacute;plication ne sont jamais
trac&amp;eacute;es dans le journal et la valeur de la variable
long_query_time est n&amp;eacute;cessairement un entier. Ces deux derniers
points ont des cons&amp;eacute;quences g&amp;ecirc;nantes :  si vous activez le
journal sur un slave mais pas sur le master, vous risquez de passer
&amp;agrave; c&amp;ocirc;t&amp;eacute; de requ&amp;ecirc;tes de mises &amp;agrave; jour qui
sont lentes, les mises &amp;agrave; jour &amp;eacute;tant toutes
ex&amp;eacute;cut&amp;eacute;es par le thread de r&amp;eacute;plication si votre
application est d&amp;eacute;j&amp;agrave; bien optimis&amp;eacute;e, votre journal
sera probablement vide car vous n&amp;rsquo;aurez plus aucune requ&amp;ecirc;te
s&amp;rsquo;ex&amp;eacute;cutant en plus d&amp;rsquo;une seconde : si vous souhaitez
malgr&amp;eacute; tout rep&amp;eacute;rer les requ&amp;ecirc;tes les plus longues
&amp;agrave; ex&amp;eacute;cuter, il faudra trouver un autre moyen pour les
tracer  Il existe encore 2 autres options disponibles : la
possibilit&amp;eacute; de tracer les requ&amp;ecirc;tes
&amp;laquo;&amp;nbsp;administratives&amp;nbsp;&amp;raquo; (par exemple, REPAIR TABLE)
qui sont lentes ou encore la possibilit&amp;eacute; de tracer les
requ&amp;ecirc;tes n&amp;rsquo;utilisant pas d&amp;rsquo;index, quel que soit leur
temps d&amp;rsquo;ex&amp;eacute;cution. Il suffit pour cela de renseigner
l&amp;rsquo;une ou l&amp;rsquo;autre des variables dans le fichier my.cnf :
[mysqld] log-slow-admin-statements log-queries-not-using-indexes
L&amp;rsquo;option log-queries-not-using-indexes m&amp;eacute;rite quand
m&amp;ecirc;me qu&amp;rsquo;on s&amp;rsquo;y attarde un peu&amp;hellip; En effet, cette
option va en r&amp;eacute;alit&amp;eacute; tracer les requ&amp;ecirc;tes qui
parcourent toutes les lignes d&amp;rsquo;une table, peu importe si ce
parcours se fait ou non avec un index. Pas tr&amp;egrave;s clair ? Prenons
un exemple. Voici 2 structures de table, identiques sauf que l&amp;rsquo;une
a pour moteur InnoDB et l&amp;rsquo;autre MyISAM :  CREATE TABLE t1 ( id
int(11) NOT NULL auto_increment, PRIMARY KEY  (id) ) ENGINE=InnoDB
CREATE TABLE t2 ( id int(11) NOT NULL auto_increment, PRIMARY KEY  (id)
) ENGINE=MyISAM Remplissons les tables avec quelques lignes en
r&amp;eacute;p&amp;eacute;tant plusieurs fois les insertions suivantes :
mysql&amp;gt; INSERT INTO t1 (id) VALUES (NULL); mysql&amp;gt; INSERT INTO t2
(id) VALUES (NULL);  Maintenant la requ&amp;ecirc;te suivante va se
retrouver dans le journal des requ&amp;ecirc;tes lentes :  mysql&amp;gt; SELECT
COUNT(*) FROM t1;  alors que celle-ci n&amp;rsquo;y sera pas :  mysql&amp;gt;
SELECT COUNT(*) FROM t2;  Quelle est l&amp;rsquo;explication ? Il suffit de
regarder le plan d&amp;rsquo;ex&amp;eacute;cution donn&amp;eacute; par EXPLAIN. Pour
la table t1, EXPLAIN indique que le plan est de faire un full index scan
alors que pour t2, aucune op&amp;eacute;ration n&amp;rsquo;est n&amp;eacute;cessaire
(donc en particulier aucun index n&amp;rsquo;est utilis&amp;eacute;), le moteur
MyISAM gardant toujours parmi ses m&amp;eacute;ta-donn&amp;eacute;es le nombre
d&amp;rsquo;enregistrements de la table. Dans notre cas, MySQL a donc
trac&amp;eacute; la requ&amp;ecirc;te utilisant un index et ignor&amp;eacute; celle
n&amp;rsquo;en utilisant pas&amp;hellip; Quand je disais que cette option
m&amp;eacute;ritait qu&amp;rsquo;on s&amp;rsquo;y attarde un peu ! Maintenant que
nous avons fait le tour de ce qui est possible en 5.0, voyons ce que la
5.1 a apport&amp;eacute; de neuf. C&amp;rsquo;est simple : que du bon ! Ainsi,
il est d&amp;eacute;sormais possible d&amp;rsquo;activer/d&amp;eacute;sactiver le
journal dynamiquement, de tracer les requ&amp;ecirc;tes lentes dans un
fichier ou dans une table, d&amp;rsquo;indiquer un seuil non plus en
secondes mais en microsecondes et enfin de tracer les requ&amp;ecirc;tes
ex&amp;eacute;cut&amp;eacute;es par le thread de r&amp;eacute;plication ! Dans le
d&amp;eacute;tail, c&amp;rsquo;est un peu plus compliqu&amp;eacute;&amp;hellip; La
variable log_slow_queries a &amp;eacute;t&amp;eacute; remplac&amp;eacute;e par
slow_query_log : c&amp;rsquo;est gr&amp;acirc;ce &amp;agrave; elle que vous
activez/d&amp;eacute;sactivez le journal. Par d&amp;eacute;faut, le journal est
&amp;eacute;crit dans un fichier, dont vous pouvez pr&amp;eacute;ciser le nom
avec la variable slow_query_log_file. Pour &amp;eacute;crire dans une table,
il faut modifier la variable log_output en pr&amp;eacute;cisant TABLE. Vous
pouvez aussi choisir d&amp;rsquo;&amp;eacute;crire &amp;agrave; la fois dans un
fichier et dans une table avec log_output = FILE, TABLE. Attention, la
variable log_output s&amp;rsquo;applique &amp;eacute;galement au journal
g&amp;eacute;n&amp;eacute;ral (general log) si celui-ci est activ&amp;eacute;. Le
seuil d&amp;eacute;crit par long_query_time s&amp;rsquo;&amp;eacute;crit toujours en
secondes, mais avec une pr&amp;eacute;cision pouvant aller
jusqu&amp;rsquo;&amp;agrave; la microseconde. Vous pouvez donc maintenant
d&amp;eacute;finir un seuil de 0.05s : long_query_time = 0.05. Attention, si
vous &amp;eacute;crivez dans une table, la granularit&amp;eacute; redevient la
seconde comme en 5.0 ! Une petite nouveaut&amp;eacute; aussi, vous avez la
possibilit&amp;eacute; de ne tracer que les requ&amp;ecirc;tes qui examinent au
moins un certain nombre de lignes avec la variables
min_examined_row_limit. Enfin, dernier point, la variable
log-slow-slave-statements, disponible &amp;agrave; partir de la 5.1.45
permet de tracer les requ&amp;ecirc;tes lentes ex&amp;eacute;cut&amp;eacute;es par
le thread de r&amp;eacute;plication. Ca y est, vous savez tout sur le
journal des requ&amp;ecirc;tes lentes de MySQL ! Enfin, presque, car si vous
utilisez la version de MySQL patch&amp;eacute;e par Percona, vous trouverez
des informations suppl&amp;eacute;mentaires. Ceci fera sans doute
l&amp;rsquo;objet d&amp;rsquo;un nouvel article. En attendant, nous examinerons
prochainement quels sont les outils disponibles pour analyser les
requ&amp;ecirc;tes lentes.</description>
      <pubDate>Fri, 28 May 2010 14:36:10 GMT</pubDate>
      <guid isPermaLink="false">http://www.dbnewz.com/?p=558</guid>
      <dc:date>2010-05-28T14:36:10Z</dc:date>
    </item>
    <item>
      <title>Audit MySQL – tmp_table_size &amp;amp; max_heap_table_size</title>
      <link>http://dasini.net/blog/?p=912</link>
      <description>Je suis amen&amp;eacute; &amp;agrave; r&amp;eacute;aliser
r&amp;eacute;guli&amp;egrave;rement des audits de serveurs MySQL.Voici le
premier volet d&amp;rsquo;une s&amp;eacute;rie d&amp;rsquo;articles o&amp;ugrave; je
vais essayer de vous donner quelques points cl&amp;eacute;s pour mieux
comprendre le fonctionnement de MySQL. La configuration du serveur est
un des points que je regarde, et l&amp;rsquo;une des erreurs les plus
courantes concerne le param&amp;eacute;trage des options tmp_table_size et
max_heap_table_size. tmp_table_size permet de fixer la taille maximale
au-del&amp;agrave; de laquelle les tables temporaires en m&amp;eacute;moire
cr&amp;eacute;&amp;eacute;es par MySQL (avec le moteur Memory) se transforment
en table MyISAM en migrant les donn&amp;eacute;es sur le disque.
max_heap_table_size permet de fixer la taille maximale des tables avec
pour moteur de stockage Memory (Heap est l&amp;rsquo;ancien nom de Memory).
Extraits du livre &amp;laquo;&amp;nbsp;Audit et optimisation &amp;ndash; MySQL 5;
Bonnes pratiques pour l&amp;rsquo;administrateur&amp;nbsp;&amp;raquo;    Ce qui est
important de savoir c&amp;rsquo;est que la limite des tables temporaires en
m&amp;eacute;moire cr&amp;eacute;&amp;eacute;es par MySQL est la plus petite de ces
deux valeurs. Ce que je vois souvent dans les fichier de configurations,
c&amp;rsquo;est un&amp;nbsp;tmp_table_size &amp;agrave; 64 Mo (par exemple) et un
max_heap_table_size qui lui n&amp;rsquo;y figure pas et qui
par&amp;nbsp;cons&amp;eacute;quent&amp;nbsp;prend &amp;ccedil;a valeur par
d&amp;eacute;faut, c&amp;rsquo;est &amp;agrave; dire 16Mo. Votre table temporaire
cr&amp;eacute;&amp;eacute;e par le serveur (lors de votre GROUP BY par exemple)
sera sur disque d&amp;egrave;s 16Mo de donn&amp;eacute;es et non 64 Mo comme
vous le pensiez. Alors pourquoi faut il limiter le nombre de tables
temporaires cr&amp;eacute;&amp;eacute;es sur le disque ? Tous simplement car sur
disque,&amp;nbsp;le temps d&amp;rsquo;ex&amp;eacute;cution de la requ&amp;ecirc;te sera
beaucoup, beaucoup plus long, de l&amp;rsquo;ordre de fois 10 voir fois 100
!  Lorsque vous renseignez l&amp;rsquo;option tmp_table_size, pensez
&amp;eacute;galement &amp;agrave; donner la m&amp;ecirc;me valeur &amp;agrave;
l&amp;rsquo;option max_heap_table_size.</description>
      <pubDate>Fri, 28 May 2010 12:05:16 GMT</pubDate>
      <guid isPermaLink="false">http://dasini.net/blog/?p=912</guid>
      <dc:date>2010-05-28T12:05:16Z</dc:date>
    </item>
    <item>
      <title>Audit MySQL ? tmp_table_size &amp;amp; max_heap_table_size</title>
      <link>http://dasini.net/blog/?p=912</link>
      <description>Je suis amen&amp;eacute; &amp;agrave; r&amp;eacute;aliser
r&amp;eacute;guli&amp;egrave;rement des audits de serveurs MySQL.Voici le
premier volet d&amp;rsquo;une s&amp;eacute;rie d&amp;rsquo;articles o&amp;ugrave; je
vais essayer de vous donner quelques points cl&amp;eacute;s pour mieux
comprendre le fonctionnement de MySQL. La configuration du serveur est
un des points que je regarde, et l&amp;rsquo;une des erreurs les plus
courantes concerne le param&amp;eacute;trage des options tmp_table_size et
max_heap_table_size. tmp_table_size permet de fixer la taille maximale
au-del&amp;agrave; de laquelle les tables temporaires en m&amp;eacute;moire
cr&amp;eacute;&amp;eacute;es par MySQL (avec le moteur Memory) se transforment
en table MyISAM en migrant les donn&amp;eacute;es sur le disque.
max_heap_table_size permet de fixer la taille maximale des tables avec
pour moteur de stockage Memory (Heap est l&amp;rsquo;ancien nom de Memory).
Extraits du livre &amp;laquo;&amp;nbsp;Audit et optimisation &amp;ndash; MySQL 5;
Bonnes pratiques pour l&amp;rsquo;administrateur&amp;nbsp;&amp;raquo;    Ce qui est
important de savoir c&amp;rsquo;est que la limite des tables temporaires en
m&amp;eacute;moire cr&amp;eacute;&amp;eacute;es par MySQL est la plus petite de ces
deux valeurs. Ce que je vois souvent dans les fichier de configurations,
c&amp;rsquo;est un&amp;nbsp;tmp_table_size &amp;agrave; 64 Mo (par exemple) et un
max_heap_table_size qui lui n&amp;rsquo;y figure pas et qui
par&amp;nbsp;cons&amp;eacute;quent&amp;nbsp;prend &amp;ccedil;a valeur par
d&amp;eacute;faut, c&amp;rsquo;est &amp;agrave; dire 16Mo. Votre table temporaire
cr&amp;eacute;&amp;eacute;e par le serveur (lors de votre GROUP BY par exemple)
sera sur disque d&amp;egrave;s 16Mo de donn&amp;eacute;es et non 64 Mo comme
vous le pensiez. Alors pourquoi faut il limiter le nombre de tables
temporaires cr&amp;eacute;&amp;eacute;es sur le disque ? Tous simplement car sur
disque,&amp;nbsp;le temps d&amp;rsquo;ex&amp;eacute;cution de la requ&amp;ecirc;te sera
beaucoup, beaucoup plus long, de l&amp;rsquo;ordre de fois 10 voir fois 100
!  Lorsque vous renseignez l&amp;rsquo;option tmp_table_size, pensez
&amp;eacute;galement &amp;agrave; donner la m&amp;ecirc;me valeur &amp;agrave;
l&amp;rsquo;option max_heap_table_size.</description>
      <pubDate>Fri, 28 May 2010 12:05:16 GMT</pubDate>
      <guid isPermaLink="false">http://dasini.net/blog/?p=912</guid>
      <dc:date>2010-05-28T12:05:16Z</dc:date>
    </item>
    <item>
      <title>Magazine PHP Solutions devient mensuel gratuit</title>
      <link>http://www.phpindex.com/index.php/2010/05/26/6244-magazine-php-solutions-devient-mensuel-gratuit</link>
      <description>&amp;Agrave; partir de mai 2010, le magazine PHP Solutions devient mensuel
disponible en version num&amp;eacute;rique et &amp;agrave;
t&amp;eacute;l&amp;eacute;charger gratuitement par tous ! Il suffit de visiter
le site web officiel http://phpsolmag.org/fr et
t&amp;eacute;l&amp;eacute;charger le tout nouveau num&amp;eacute;ro 4/2010 ainsi que
des num&amp;eacute;ros d'archives!  Dans le no. 4/2010 :     * Les Google
Webmaster Tools    * Pr&amp;eacute;processeur CSS    * Administrer votre
serveur Debian par SSH    * AJAX facile avec JQuery et Zend Framework
* CLI : PHP en ligne de commande    * Manipuler les cookies avec PHP
* Android ou gPhone    * MySQLND : une &amp;eacute;conomie de ressources
* PHP et la s&amp;eacute;curit&amp;eacute;    * Un comparatif de forums PHP    *
Puppy Linux / Toutou Linux une distribution tr&amp;egrave;s
l&amp;eacute;g&amp;egrave;re et &amp;agrave; la      pointe de la technologie !
Propos&amp;eacute; par redPHP</description>
      <pubDate>Wed, 26 May 2010 07:21:31 GMT</pubDate>
      <guid isPermaLink="false">http://www.phpindex.com/index.php/2010/05/26/6244-magazine-php-solutions-devient-mensuel-gratuit</guid>
      <dc:date>2010-05-26T07:21:31Z</dc:date>
    </item>
    <item>
      <title>ThePhig</title>
      <link>http://www.nexen.net/actualites/php/19670-thephig.php</link>
      <description>ThePhig est une nouvelle galerie photos. Elle est r&amp;eacute;alis&amp;eacute;e
en PHP/MySQL, sous licence Open source. La diff&amp;eacute;rence avec les
autres applications du m&amp;ecirc;me genre, c'est la possibilit&amp;eacute; de
g&amp;eacute;olocalier la prise des photos dans une carte Google Maps. Les
auteurs du projet ont rep&amp;eacute;r&amp;eacute;s que les
t&amp;eacute;l&amp;eacute;phones mobiles poss&amp;egrave;dent un mode GPS inclus.
Gr&amp;acirc;ce &amp;agrave; ce principe, il est possible de synchroniser les
photos avec un positionnement. Du cot&amp;eacute; applicatifs, l'application
poss&amp;egrave;de les fonctionnalit&amp;eacute;s standards d'une galerie de
photos :  Miniatures Template Tag des photos etc  A le r&amp;eacute;sultat
pr&amp;eacute;sent&amp;eacute;, de nouvelles applications vont
appara&amp;icirc;tre.&amp;nbsp;ThePhig site officiel (0 visite)</description>
      <pubDate>Wed, 26 May 2010 06:12:04 GMT</pubDate>
      <guid isPermaLink="false">http://www.nexen.net/actualites/php/19670-thephig.php</guid>
      <dc:date>2010-05-26T06:12:04Z</dc:date>
    </item>
    <item>
      <title>Nouveaut&amp;eacute;s de la version Printemps 2010 de MySQL Enterprise (29 Jun 2010)</title>
      <link>http://www.mysql.fr/news-and-events/web-seminars/display-548.html</link>
      <description>La version Printemps 2010 de MySQL Enterprise dote le MySQL Enterprise
Monitor d'un Query Analyzer am&amp;eacute;lior&amp;eacute; gr&amp;acirc;ce &amp;agrave;
de nouvelles fonctions. Elle inclut &amp;eacute;galement les plug-ins
&amp;quot;MySQL Connector&amp;quot; con&amp;ccedil;us pour augmenter vos
performances.  Participez &amp;agrave; ce s&amp;eacute;minaire Web pour en
savoir plus sur les am&amp;eacute;liorations apport&amp;eacute;es au MySQL
Enterprise Monitor et au Query Analyzer, d&amp;eacute;couvrir les nouvelles
r&amp;egrave;gles de conseil et obtenir les r&amp;eacute;ponses &amp;agrave; vos
questions directement aupr&amp;egrave;s des experts MySQL.Date and Time:
Tuesday, 29 Jun 2010, 10:00 CET</description>
      <pubDate>Tue, 25 May 2010 17:53:05 GMT</pubDate>
      <guid isPermaLink="false">http://www.mysql.fr/news-and-events/web-seminars/display-548.html</guid>
      <dc:date>2010-05-25T17:53:05Z</dc:date>
    </item>
    <item>
      <title>Des outils MySQL</title>
      <link>http://www.nexen.net/actualites/php/19669-des_outils_mysql.php</link>
      <description>MySQL est une base de donn&amp;eacute;es et il existe de nombreux outils
d'appoints ou de scripts autour de cette distribution. Le site hackMysql
propose une liste d'outils open source qui vont r&amp;eacute;pondre &amp;agrave;
la majorit&amp;eacute; des besoins et se pr&amp;eacute;sente de la fa&amp;ccedil;on
suivante :   MySQL scripts Maatkit Boots Projects Percona Aspera
Kontrollkit MMM Innotop Schema Sync rtime Opernark kit Mycheckpoint
MySQL sandbox MySQL cacti Templates   L'ensemble des outils touchent
l'ensemble des langages du web : PHP, Python, Perl, c++, etc&amp;nbsp;MySQL
Tools (0 visite)</description>
      <pubDate>Tue, 25 May 2010 02:53:24 GMT</pubDate>
      <guid isPermaLink="false">http://www.nexen.net/actualites/php/19669-des_outils_mysql.php</guid>
      <dc:date>2010-05-25T02:53:24Z</dc:date>
    </item>
    <item>
      <title>CERTA-2010-AVI-223 : Multiples vuln�rabilit�s dans MySQL (21 mai 2010)</title>
      <link>http://www.certa.ssi.gouv.fr/site/CERTA-2010-AVI-223/CERTA-2010-AVI-223.html</link>
      <description>Plusieurs vuln&amp;eacute;rabilit&amp;eacute;s dans MySQL permettent &amp;agrave;
une personne malintentionn&amp;eacute;e de contourner la politique de
s&amp;eacute;curit&amp;eacute;, de provoquer un d&amp;eacute;ni de service ou
d'ex&amp;eacute;cuter du code arbitraire &amp;agrave; distance.</description>
      <pubDate>Fri, 21 May 2010 22:59:22 GMT</pubDate>
      <guid isPermaLink="false">http://www.certa.ssi.gouv.fr/site/CERTA-2010-AVI-223/CERTA-2010-AVI-223.html</guid>
      <dc:date>2010-05-21T22:59:22Z</dc:date>
    </item>
    <item>
      <title>Un annuaire appel� Bartemis</title>
      <link>http://www.lephpfacile.com/news/6662-un-annuaire-appele-bartemis</link>
      <description>Bartemis est un script sous la forme d'un annuaire,
r&amp;eacute;alis&amp;eacute; en PHP/MySQL sous licence GPL. Il est tr&amp;egrave;s
l&amp;eacute;ger et se place facilement dans votre site internet car il
s'installe et se configure en quelques secondes.&lt;br /&gt;
&lt;br /&gt;
 Une interface vous permettra de g&amp;eacute;rer, de classer l'ensemble des
sites propos&amp;eacute;s.&lt;br /&gt;
&lt;br /&gt;
 Par ailleurs, vous pourrez le personnaliser pour le rendre unique par
l'interm&amp;eacute;diaire de th&amp;egrave;mes offerts par l'annuaire.&lt;br /&gt;
&lt;br /&gt;
 - &lt;a href="http://www.bartemis.com/"&gt;Site officiel Bartemis&lt;/a&gt;</description>
      <pubDate>Fri, 21 May 2010 20:27:00 GMT</pubDate>
      <guid isPermaLink="false">http://www.lephpfacile.com/news/6662-un-annuaire-appele-bartemis</guid>
      <dc:date>2010-05-21T20:27:00Z</dc:date>
    </item>
    <item>
      <title>Un annuaire appelé Bartemis</title>
      <link>http://www.nexen.net/actualites/php/19660-un_annuaire_appele_bartemis.php</link>
      <description>Bartemis est un script sous la forme d'un annuaire,
r&amp;eacute;alis&amp;eacute; en PHP/MySQL sous licence GPL. Il est tr&amp;egrave;s
l&amp;eacute;ger et se place facilement dans votre site internet car il
s'installe et se configure en quelques secondes. Une interface vous
permettra de g&amp;eacute;rer, de classer l'ensemble des sites
propos&amp;eacute;s. Par ailleurs, vous pourrez le personnaliser pour le
rendre unique par l'interm&amp;eacute;diaire de th&amp;egrave;mes offerts par
l'annuaire.&amp;nbsp;Site officiel Bartemis (0 visite)</description>
      <pubDate>Fri, 21 May 2010 02:02:25 GMT</pubDate>
      <guid isPermaLink="false">http://www.nexen.net/actualites/php/19660-un_annuaire_appele_bartemis.php</guid>
      <dc:date>2010-05-21T02:02:25Z</dc:date>
    </item>
    <item>
      <title>Un annuaire appel� Bartemis</title>
      <link>http://www.nexen.net/actualites/php/19660-un_annuaire_appele_bartemis.php</link>
      <description>Bartemis est un script sous la forme d'un annuaire,
r&amp;eacute;alis&amp;eacute; en PHP/MySQL sous licence GPL. Il est tr&amp;egrave;s
l&amp;eacute;ger et se place facilement dans votre site internet car il
s'installe et se configure en quelques secondes. Une interface vous
permettra de g&amp;eacute;rer, de classer l'ensemble des sites
propos&amp;eacute;s. Par ailleurs, vous pourrez le personnaliser pour le
rendre unique par l'interm&amp;eacute;diaire de th&amp;egrave;mes offerts par
l'annuaire.&amp;nbsp;Site officiel Bartemis (0 visite)</description>
      <pubDate>Fri, 21 May 2010 02:02:25 GMT</pubDate>
      <guid isPermaLink="false">http://www.nexen.net/actualites/php/19660-un_annuaire_appele_bartemis.php</guid>
      <dc:date>2010-05-21T02:02:25Z</dc:date>
    </item>
    <item>
      <title>Tracer les requêtes MySQL en cours d exécution</title>
      <link>http://www.nexen.net/actualites/php/19659-tracer_les_requetes_mysql_en_cours_d_execution.php</link>
      <description>Lors de la r&amp;eacute;alisation d'un projet web en PHP, vous pouvez
&amp;ecirc;tre amener &amp;agrave; modifier vos requ&amp;ecirc;tes de
r&amp;eacute;sultats pour afficher de nouvelles donn&amp;eacute;es. Hors les
manipulations de requ&amp;ecirc;tes SQL sont toujours &amp;agrave; prendre avec
d&amp;eacute;licatesse car, lorsque votre site web se situe en version
d&amp;eacute;veloppement ou de productions, les op&amp;eacute;rations de
maintenance et d'&amp;eacute;volutions s'effectuent facilement. Mais si vous
devez intervenir pendant que votre projet se trouve en ligne, c'est
&amp;agrave; dire accessible par les internautes, ce genre
d'op&amp;eacute;ration s'effectue avec attention. Il est tr&amp;egrave;s
g&amp;eacute;nant de bloquer l'acc&amp;egrave;s &amp;agrave; vos pages si des
visiteurs sont pr&amp;eacute;sents. Le blog de John Jean montre comment
effectuer cette op&amp;eacute;ration sous la forme d'une petite aide en
ligne.  Il nous montre &amp;agrave; partir d'une base de donn&amp;eacute;e MySQL
comment r&amp;eacute;aliser l'op&amp;eacute;ration sans que l'internaute se
rende compte que vous effectuez de la maintenance.&amp;nbsp;Tracer les
requ&amp;ecirc;tes MySQL en cours d ex&amp;eacute;cution (0 visite)</description>
      <pubDate>Wed, 19 May 2010 23:06:53 GMT</pubDate>
      <guid isPermaLink="false">http://www.nexen.net/actualites/php/19659-tracer_les_requetes_mysql_en_cours_d_execution.php</guid>
      <dc:date>2010-05-19T23:06:53Z</dc:date>
    </item>
    <item>
      <title>Tracer les requ�tes MySQL en cours d ex�cution</title>
      <link>http://www.nexen.net/actualites/php/19659-tracer_les_requetes_mysql_en_cours_d_execution.php</link>
      <description>Lors de la r&amp;eacute;alisation d'un projet web en PHP, vous pouvez
&amp;ecirc;tre amener &amp;agrave; modifier vos requ&amp;ecirc;tes de
r&amp;eacute;sultats pour afficher de nouvelles donn&amp;eacute;es. Hors les
manipulations de requ&amp;ecirc;tes SQL sont toujours &amp;agrave; prendre avec
d&amp;eacute;licatesse car, lorsque votre site web se situe en version
d&amp;eacute;veloppement ou de productions, les op&amp;eacute;rations de
maintenance et d'&amp;eacute;volutions s'effectuent facilement. Mais si vous
devez intervenir pendant que votre projet se trouve en ligne, c'est
&amp;agrave; dire accessible par les internautes, ce genre
d'op&amp;eacute;ration s'effectue avec attention. Il est tr&amp;egrave;s
g&amp;eacute;nant de bloquer l'acc&amp;egrave;s &amp;agrave; vos pages si des
visiteurs sont pr&amp;eacute;sents. Le blog de John Jean montre comment
effectuer cette op&amp;eacute;ration sous la forme d'une petite aide en
ligne.  Il nous montre &amp;agrave; partir d'une base de donn&amp;eacute;e MySQL
comment r&amp;eacute;aliser l'op&amp;eacute;ration sans que l'internaute se
rende compte que vous effectuez de la maintenance.&amp;nbsp;Tracer les
requ&amp;ecirc;tes MySQL en cours d ex&amp;eacute;cution (0 visite)</description>
      <pubDate>Wed, 19 May 2010 23:06:53 GMT</pubDate>
      <guid isPermaLink="false">http://www.nexen.net/actualites/php/19659-tracer_les_requetes_mysql_en_cours_d_execution.php</guid>
      <dc:date>2010-05-19T23:06:53Z</dc:date>
    </item>
    <item>
      <title>Piwigo 2.1.0</title>
      <link>http://www.nexen.net/actualites/php/19658-piwigo_2.1.0.php</link>
      <description>La version 2 de Piwigo est sortie  voici quelques semaines. Aujourd'hui
une nouvelle version est disponible pour proposer de nouvelles
fonctionnalit&amp;eacute;s pour publier et g&amp;eacute;rer vos photos. Cette
version se voit doter maintenant d'une administration
d&amp;eacute;di&amp;eacute;e &amp;agrave; la gestion des photos. L'avance va vous
permettre de mieux&amp;nbsp; les g&amp;eacute;rer, de les tagger et d'installer
des th&amp;egrave;mes. Maintenant l'interface d'administration se rapproche
des standards de ce type d'interface comme propose les autres API. Par
ailleurs, Piwigo supporte maintenant diff&amp;eacute;rentes bases de
donn&amp;eacute;es pour trouver au cot&amp;eacute; de MySQL, les bases de
donn&amp;eacute;es comme PostgreSQL et SQLite.&amp;nbsp;D&amp;eacute;tail de Piwigo
2.1.0 (0 visite)</description>
      <pubDate>Wed, 19 May 2010 18:36:18 GMT</pubDate>
      <guid isPermaLink="false">http://www.nexen.net/actualites/php/19658-piwigo_2.1.0.php</guid>
      <dc:date>2010-05-19T18:36:18Z</dc:date>
    </item>
    <item>
      <title>Migration de MySQL vers CouchDB</title>
      <link>http://www.nexen.net/actualites/php/19654-migration_de_mysql_vers_couchdb.php</link>
      <description>Le blog till's vient de publier la 3eme partie d'un article concernant
la migration d'une base de donn&amp;eacute;es MySQL vers CouchDB. Pour
rappel CouchDB, est un syst&amp;egrave;me de gestion de base de
donn&amp;eacute;es libre et orient&amp;eacute;e documents. La premi&amp;egrave;re
partie concerne une approche du cot&amp;eacute; d&amp;eacute;veloppeur, c'est
&amp;agrave; dire en utilisant les fonctions PHP avec CouchDB avec un
exemple. La partie 2 met l'accent sur les op&amp;eacute;rations les plus
&amp;eacute;l&amp;eacute;mentaires, pour vous aider &amp;agrave; construire un petit
wrapper pour CouchDB La partie 3 sera orient&amp;eacute;e sur les fonctions
de bases de CouchDB&amp;nbsp;Migration de MySQL vers CouchDB Partie 1 (0
visite)&amp;nbsp;Migration de MySQL vers CouchDB Partie 2 (0
visite)&amp;nbsp;Migration de MySQL vers CouchDB Partie 3 (0 visite)</description>
      <pubDate>Tue, 18 May 2010 19:48:23 GMT</pubDate>
      <guid isPermaLink="false">http://www.nexen.net/actualites/php/19654-migration_de_mysql_vers_couchdb.php</guid>
      <dc:date>2010-05-18T19:48:23Z</dc:date>
    </item>
    <item>
      <title>PHP et MongoDB partie 1</title>
      <link>http://www.nexen.net/actualites/php/19652-php_et_mongodb_partie_1.php</link>
      <description>Le site dealtaker vient de lancer une s&amp;eacute;rie de tutorials pour
utiliser PHP et MongoDB. Pour rappel, MongoDB, c'est du NoSQL. La
premi&amp;egrave;re partie de cette s&amp;eacute;rie montre comment communiquer
entre PHP et MongoDB &amp;eacute;tape par &amp;eacute;tape. Ce tutorial vous
montre comment communiquer avec des donn&amp;eacute;es comme :  La connexion
L'insertion L'affichage etc  Et en comparant PHP et MySQL avec des
exemples.&amp;nbsp;PHP &amp;amp; MongoDB Sitting in a Tree: Part 1 (0 visite)</description>
      <pubDate>Mon, 17 May 2010 12:12:18 GMT</pubDate>
      <guid isPermaLink="false">http://www.nexen.net/actualites/php/19652-php_et_mongodb_partie_1.php</guid>
      <dc:date>2010-05-17T12:12:18Z</dc:date>
    </item>
    <item>
      <title>En vrac -  Le Livre du Zéro PHP / MySQL en précommande !</title>
      <link>http://feedproxy.google.com/~r/J0k3rn3t/~3/8ev-nvBf97k/concevez-votre-site-web-avec-php-et-mysql</link>
      <description>Une r&amp;eacute;-&amp;eacute;criture du cours PHP &amp;amp; MySQL du Site du
Z&amp;eacute;ro en version livre !</description>
      <pubDate>Tue, 11 May 2010 16:44:00 GMT</pubDate>
      <guid isPermaLink="false">http://feedproxy.google.com/~r/J0k3rn3t/~3/8ev-nvBf97k/concevez-votre-site-web-avec-php-et-mysql</guid>
      <dc:date>2010-05-11T16:44:00Z</dc:date>
    </item>
    <item>
      <title>En vrac -  Le Livre du Z�ro PHP / MySQL en pr�commande !</title>
      <link>http://feedproxy.google.com/~r/J0k3rn3t/~3/8ev-nvBf97k/concevez-votre-site-web-avec-php-et-mysql</link>
      <description>Une r&amp;eacute;-&amp;eacute;criture du cours PHP &amp;amp; MySQL du Site du
Z&amp;eacute;ro en version livre !</description>
      <pubDate>Tue, 11 May 2010 16:44:00 GMT</pubDate>
      <guid isPermaLink="false">http://feedproxy.google.com/~r/J0k3rn3t/~3/8ev-nvBf97k/concevez-votre-site-web-avec-php-et-mysql</guid>
      <dc:date>2010-05-11T16:44:00Z</dc:date>
    </item>
    <item>
      <title>Meilleures pratiques pour l&amp;#039;optimisation des performances de MySQL (26 May 2010)</title>
      <link>http://www.mysql.fr/news-and-events/web-seminars/display-543.html</link>
      <description>Observez-vous un ralentissement de vos applications lors des
p&amp;eacute;riodes de pointe?   L'identification et la r&amp;eacute;solution
des probl&amp;egrave;mes de performance n&amp;eacute;cessitent-elles plusieurs
semaines dont vous ne disposez pas?   Vous d&amp;eacute;veloppez une
nouvelle application et souhaitez conna&amp;icirc;tre la meilleure
fa&amp;ccedil;on de structurer votre sch&amp;eacute;ma et votre strat&amp;eacute;gie
d'index pour b&amp;eacute;n&amp;eacute;ficier de performances optimales?   Alors
ce s&amp;eacute;minaire web est pour vous! Vous b&amp;eacute;n&amp;eacute;ficierez
de conseils d'experts qui vous feront d&amp;eacute;couvrir les meilleures
pratiques pour l'optimisation des performances de MySQL!    Nous
aborderons les sujets suivants:      Optimisation des sch&amp;eacute;mas
R&amp;eacute;glage des options des serveurs   Optimisation des
op&amp;eacute;rations des serveurs   Choix et optimisation du
mat&amp;eacute;riel   Choix du moteur de stockage Date and Time: Wednesday,
26 May 2010, 10:00 CET</description>
      <pubDate>Mon, 10 May 2010 17:25:19 GMT</pubDate>
      <guid isPermaLink="false">http://www.mysql.fr/news-and-events/web-seminars/display-543.html</guid>
      <dc:date>2010-05-10T17:25:19Z</dc:date>
    </item>
    <item>
      <title>Quicksilver Pro France : De LAMP � HAProxy</title>
      <link>http://www.toolinux.com/lininfo/toolinux-information/services/article/quicksilver-pro-france-de-lamp-a</link>
      <description>&lt;p&gt;Le Quiksilver Pro France r&amp;eacute;unit les 45 meilleurs surfeurs du
  monde avec un public de plus en plus large. EXOSEC s'est charg&amp;eacute;
  fin 2009 de la retransmission en direct et en VOD. LAMP
  (Linux-Apache-MySQL-PHP) &amp;eacute;tait (forc&amp;eacute;ment) de la partie.&lt;/p&gt;
  - &lt;a href="http://www.toolinux.com/lininfo/toolinux-information/services/"&gt;Services&lt;/a&gt;</description>
      <pubDate>Wed, 05 May 2010 23:21:00 GMT</pubDate>
      <guid isPermaLink="false">http://www.toolinux.com/lininfo/toolinux-information/services/article/quicksilver-pro-france-de-lamp-a</guid>
      <dc:date>2010-05-05T23:21:00Z</dc:date>
    </item>
    <item>
      <title>PHP solutions passe au numérique</title>
      <link>http://www.nexen.net/actualites/php/19639-php_solutions_passe_au_numerique.php</link>
      <description>Le magazine &amp;laquo;&amp;nbsp;PHP solutions&amp;nbsp;&amp;raquo; vient de passer en
version num&amp;eacute;rique. Ce num&amp;eacute;ro est
t&amp;eacute;l&amp;eacute;chargeable gratuitement sur le site du magazine au
format PDF. Il r&amp;eacute;pond aux attentes des lecteurs poss&amp;eacute;dant
un support num&amp;eacute;rique portable. Dans ce num&amp;eacute;ro, vous
d&amp;eacute;couvrirez :   Les Google Webmaster Tools  Pr&amp;eacute;processeur
CSS  Administrer votre serveur Debian par SSH  AJAX facile avec JQuery
et Zend Framework  CLI : PHP en ligne de commande  Manipuler les cookies
avec PHP  Android ou gPhone  MySQLND : une &amp;eacute;conomie de ressources
PHP et la s&amp;eacute;curit&amp;eacute;  Un comparatif de forums PHP  Puppy
Linux / Toutou Linux une distribution tr&amp;egrave;s l&amp;eacute;g&amp;egrave;re
et &amp;agrave; la pointe de la technologie !&amp;nbsp;PHP Solutions (2010-04) :
AJAX avec JQuery et Zend Framework (0 visite)</description>
      <pubDate>Wed, 05 May 2010 22:53:17 GMT</pubDate>
      <guid isPermaLink="false">http://www.nexen.net/actualites/php/19639-php_solutions_passe_au_numerique.php</guid>
      <dc:date>2010-05-05T22:53:17Z</dc:date>
    </item>
    <item>
      <title>Nouvelle version d'EasyPHP (5.3.2i) et modules (WordPress, Spip...)</title>
      <link>http://www.phpindex.com/index.php/2010/04/27/6205-nouvelle-version-d-easyphp-532i-et-modules-wordpress-spip</link>
      <description>Beaucoup de changements et de nouveaut&amp;eacute;s. En plus des mises a
jour classiques des elements d'EasyPHP (Apache, MySQL, PhpMyAdmin...),
la nouvelle version int&amp;egrave;gre de nouvelles fonctionnalites. Il est
dorenavant possible d'installer (directement ou apres coup) des versions
pre-configurees de WordPress, Spip, Prestashop, Drupal... Ceci offre un
moyen ultra simple et rapide de tester les applications phares du monde
PHP. Rien a configurer, tout se fait automatiquement lors de
l'installation. * Si la derniere version d'EasyPHP est deja installee,
il suffit de telecharger et d'installer le module que l'on souhaite
tester. * Si EasyPHP n'est pas installe sur la machine et que l'on
souhaite tester WordPress par exemple, il suffit de telecharger la
version EasyPHP+WordPress et l'installation d'EasyPHP et WordPress se
fait d'un coup. On obtient un WordPress pret a l'emploi en 5 minutes.
Pour tester d'autres application, un simple telechargement/installation
du module correspondant est n&amp;eacute;cessaire.  Pas de limite quant au
nombre de modules et au nombre d'installations du m&amp;ecirc;me module.
Comme toujours, EasyPHP peut s'installer n'importe ou : disque dur, cle
USB ...  L'interface d'administration d'EasyPHP permet de: - lister le
repertoire DocRoot d'Apache - creer/supprimer des alias - gerer MySQL
avec PhpMyAdmin - declarer le TimeZone pour PHP. - exceder au phpinfo -
...  Website : www.easyphp.org Facebook page :
www.facebook.com/pages/EasyPHP/100608599258 Twitter :
www.twitter.com/easyphp Sourceforge :
www.sourceforge.net/projects/quickeasyphp/  Les versions a jour sont:
EASYPHP CLASSIQUE *EasyPHP 5.3.2i    - PHP 5.3.2    - Apache 2.2.15    -
MySQL 5.1.45    - PhpMyAdmin 3.3.2  *EasyPHP 5.2.10    - PHP 5.2.10    -
Apache 2.2.13    - MySQL 5.1.37    - PhpMyAdmin 3.2.1    - SQLite 2.8.17
- Pecl 5.2.6   *EasyPHP 6.0dev    - PHP 6.0dev [090817]    - Apache
2.2.13    - MySQL 5.1.37    - PhpMyAdmin 3.2.1  EASYPHP PLUS   - EasyPHP
5.3.2i + WordPress 2.9.2   - EasyPHP 5.3.2i + Spip 2.1.0   - EasyPHP
5.3.2i + Prestashop 1.2.5   - ...  EASYPHP MODULES (pour EasyPHP 5.3.2i)
- WordPress 2.9.2   - Spip 2.1.0   - Prestashop 1.2.5   - ...   L'equipe
d'EasyPHP Propos&amp;eacute; par Laurent Abbal</description>
      <pubDate>Tue, 27 Apr 2010 06:59:03 GMT</pubDate>
      <guid isPermaLink="false">http://www.phpindex.com/index.php/2010/04/27/6205-nouvelle-version-d-easyphp-532i-et-modules-wordpress-spip</guid>
      <dc:date>2010-04-27T06:59:03Z</dc:date>
    </item>
    <item>
      <title>5 outils webs à connaître</title>
      <link>http://www.nexen.net/actualites/php/19621-5_outils_webs_a_connaitre.php</link>
      <description>Le web est une mine d'or, car beaucoup de projets sont disponible en
lignes. Souvent, les recherches  d'aides s'effectuent &amp;agrave; travers
les moteurs de recherche, mais il existe des sites d&amp;eacute;di&amp;eacute;s
sur de nombreux points surtout pour aider le d&amp;eacute;veloppement et la
r&amp;eacute;alisation de projet. Le site Waluutwins a dress&amp;eacute; une
liste de 5 outils webs pour avoir un m&amp;eacute;mo proche de la main. Il
pr&amp;eacute;sente :   Yuml.me : Editeur de diagramme UML sous forme de
service web Pastie.org : Partage de code &amp;quot;brute&amp;quot; rapide
Gotapi.com : La documentation en ligne (php, html, mysql, css...)
Meyerweb.com URL encoder / decoder Cheat-Sheets.org : Les feuilles de
pompes des d&amp;eacute;veloppeurs&amp;nbsp;5 outils web pour le
d&amp;eacute;veloppement (0 visite)</description>
      <pubDate>Mon, 26 Apr 2010 06:03:25 GMT</pubDate>
      <guid isPermaLink="false">http://www.nexen.net/actualites/php/19621-5_outils_webs_a_connaitre.php</guid>
      <dc:date>2010-04-26T06:03:25Z</dc:date>
    </item>
    <item>
      <title>5 outils webs � conna�tre</title>
      <link>http://www.nexen.net/actualites/php/19621-5_outils_webs_a_connaitre.php</link>
      <description>Le web est une mine d'or, car beaucoup de projets sont disponible en
lignes. Souvent, les recherches  d'aides s'effectuent &amp;agrave; travers
les moteurs de recherche, mais il existe des sites d&amp;eacute;di&amp;eacute;s
sur de nombreux points surtout pour aider le d&amp;eacute;veloppement et la
r&amp;eacute;alisation de projet. Le site Waluutwins a dress&amp;eacute; une
liste de 5 outils webs pour avoir un m&amp;eacute;mo proche de la main. Il
pr&amp;eacute;sente :   Yuml.me : Editeur de diagramme UML sous forme de
service web Pastie.org : Partage de code &amp;quot;brute&amp;quot; rapide
Gotapi.com : La documentation en ligne (php, html, mysql, css...)
Meyerweb.com URL encoder / decoder Cheat-Sheets.org : Les feuilles de
pompes des d&amp;eacute;veloppeurs&amp;nbsp;5 outils web pour le
d&amp;eacute;veloppement (0 visite)</description>
      <pubDate>Mon, 26 Apr 2010 06:03:25 GMT</pubDate>
      <guid isPermaLink="false">http://www.nexen.net/actualites/php/19621-5_outils_webs_a_connaitre.php</guid>
      <dc:date>2010-04-26T06:03:25Z</dc:date>
    </item>
    <item>
      <title>Le NAS super Combo de Digital Cowboy</title>
      <link>http://www.journaldugeek.com/?p=82301</link>
      <description>Le nouveau NAS de Digital Cowboy n&amp;rsquo;a rien de vraiment remarquable
par rapport &amp;agrave; ce que propose d&amp;eacute;j&amp;agrave; le march&amp;eacute;,
mais on peut dire qu&amp;rsquo;il fait quand m&amp;ecirc;me un super combo avec
la gestion de tout ceci : BitTorrent, Serveur Imprimante et iTunes
Music, FTP (SSL/TLS&amp;#xff64;SSH&amp;#xff64;Secure SMTP), Web  Server
(Apache&amp;#xff64;MySQL&amp;#xff64;SQLite&amp;#xff64;PHP&amp;#xff64;Port #:80), Jumbo
Frame, UPnP [...]</description>
      <pubDate>Mon, 26 Apr 2010 04:58:04 GMT</pubDate>
      <guid isPermaLink="false">http://www.journaldugeek.com/?p=82301</guid>
      <dc:date>2010-04-26T04:58:04Z</dc:date>
    </item>
    <item>
      <title>Jeux de caractères, Unicode  et Base de données</title>
      <link>http://blog.capdata.fr/?p=961</link>
      <description>Introduction Un caract&amp;egrave;re est un symbole ou un signe unique
appartenant &amp;agrave; un alphabet. Le jeu de caract&amp;egrave;res est un
ensemble de caract&amp;egrave;res &amp;agrave; repr&amp;eacute;senter. Il existe
plusieurs jeux de caract&amp;egrave;res, permettant de repr&amp;eacute;senter
diff&amp;eacute;rents alphabets du monde. Le standard ASCII       Afin de
r&amp;eacute;pertorier tous les caract&amp;egrave;res, un standard a
&amp;eacute;t&amp;eacute; mis en place. Le premier standard qui voit le jour est
l&amp;rsquo;ASCII.  Pour repr&amp;eacute;senter des caract&amp;egrave;res dans un
fichier texte, on associe un nombre (code) &amp;agrave; une lettre, &amp;agrave;
un chiffre ou &amp;agrave; un symbole. L&amp;rsquo;encodage le plus connu de
l&amp;rsquo;ASCII est US-ASCII.   A =&amp;gt; 65 =&amp;gt; 01000001  a =&amp;gt; 97
=&amp;gt; 01100001  Le codage est r&amp;eacute;alis&amp;eacute; sur 7bits/octet soit
128 symboles possibles. Une trentaine d&amp;rsquo;entre eux sont des
caract&amp;egrave;res de commande, le reste est constitu&amp;eacute; de
l&amp;rsquo;alphabet anglais standard, des chiffres et des ponctuations.
L&amp;rsquo;extension la plus connue est la famille ISO-8859, permettant de
repr&amp;eacute;senter les caract&amp;egrave;res accentu&amp;eacute;s. Le codage est
r&amp;eacute;alis&amp;eacute; sur un octet complet, soit 256 caract&amp;egrave;res
possibles. Les codes de 160 &amp;agrave; 255 sont affect&amp;eacute;s au codage
des caract&amp;egrave;res latins accentu&amp;eacute;s. Standards ISO-8859-1
&amp;agrave; 15  ISO-8859-1 puis 15 (euro): Europe de l&amp;rsquo;Ouest
ISO-8859-2: Europe Centrale ou de l&amp;rsquo;Est  ISO-8859-5: Cyrillique
ISO-8859-7: Grec     Les principaux probl&amp;egrave;mes rencontr&amp;eacute;s
avec ce standard sont les suivants : - On ne peut utiliser plusieurs
langues &amp;agrave; l&amp;rsquo;int&amp;eacute;rieur d&amp;rsquo;une m&amp;ecirc;me
instance. - Deux grands absents de l&amp;rsquo;ISO-Latin-1 sont la ligature
oe &amp;laquo; &amp;oelig; &amp;raquo;, essentielle &amp;agrave; la typographie
fran&amp;ccedil;aise correcte, et le symbole de l&amp;rsquo;euro &amp;laquo; &amp;euro;
&amp;raquo;. - Chaque constructeur d&amp;rsquo;ordinateur a aussi
d&amp;eacute;velopp&amp;eacute; ses propres codes non conformes aux standards
internationaux (IBM EBCDIC, Windows-1252,..)  L&amp;rsquo;unicode La
globalisation consiste &amp;agrave; int&amp;eacute;grer dans une m&amp;ecirc;me
table tous les caract&amp;egrave;res connus du monde.  Le standard Unicode
est un m&amp;eacute;canisme universel de codage de caract&amp;egrave;res. Il
d&amp;eacute;finit une mani&amp;egrave;re coh&amp;eacute;rente de coder des textes
multilingues et facilite l&amp;rsquo;&amp;eacute;change de donn&amp;eacute;es
textuelles.  Il est un passage obligatoire pour la plupart des nouveaux
protocoles de l&amp;rsquo;Internet, mis en &amp;oelig;uvre dans tous les
syst&amp;egrave;mes d&amp;rsquo;exploitation et langages informatiques modernes.
Formes de codage Il existe plusieurs formes de codage de
caract&amp;egrave;res pour l&amp;rsquo;Universal Character Set: - UCS-2 - UCS-4
Cependant, les codages UCS-2 et UCS-4 sont difficiles &amp;agrave; utiliser
dans de nombreuses applications et protocoles qui travaillent avec des
caract&amp;egrave;res cod&amp;eacute;s sur 8 ou m&amp;ecirc;me 7 bits. M&amp;ecirc;me
certains syst&amp;egrave;mes plus r&amp;eacute;cents capables de travailler avec
des caract&amp;egrave;res sur 16 bits ne peuvent pas traiter les
donn&amp;eacute;es cod&amp;eacute;es en UCS-4. Cette situation a conduit au
d&amp;eacute;veloppement de formats de transformation UTF (UCS
Transformation Formats). Chacun poss&amp;eacute;dant ses propres
caract&amp;eacute;ristiques. Encodage UTF 8 UTF-8 a &amp;eacute;t&amp;eacute;
con&amp;ccedil;u par Kenneth Thompson en 1992 pour &amp;ecirc;tre compatible
avec certains logiciels originellement pr&amp;eacute;vus pour traiter des
caract&amp;egrave;res d&amp;rsquo;un seul octet.  Les caract&amp;egrave;res de
num&amp;eacute;ro 0 &amp;agrave; 127 sont cod&amp;eacute;s sur un octet dont le bit
de poids fort est toujours nul. Les caract&amp;egrave;res de num&amp;eacute;ro
sup&amp;eacute;rieur &amp;agrave; 127 sont cod&amp;eacute;s sur plusieurs octets.
Encodage UTF 16 UTF-16 est une m&amp;eacute;thode permettant de transformer
un sous-ensemble de la table UCS-4 en une paire de valeurs UCS-2
d&amp;rsquo;une plage r&amp;eacute;serv&amp;eacute;e.  UTF-16 est
d&amp;eacute;compos&amp;eacute; en 2 types. UTF-16-BE (Big-endian) UTF-16-LE
(Little-endian) Le codage UTF-16-BE est l&amp;rsquo;un des codages
pr&amp;eacute;conis&amp;eacute;s par la norme Unicode. Ce codage associe
simplement un code de 16 bits (2 octets) &amp;agrave; chaque
caract&amp;egrave;re. Encodage UTF 32 UTF-32 est un protocole pour encoder
les caract&amp;egrave;res sur 32 bits. Du fait que l&amp;rsquo;UTF-32 utilise 4
bytes par caract&amp;egrave;re.  Il est aussi &amp;nbsp;d&amp;eacute;compos&amp;eacute;
en 2 types. UTF-32-BE (Big-endian) UTF-32-LE (Little-endian) Il est
relativement consommateur d&amp;rsquo;espace. Support SGBD  Oracle Deux
param&amp;egrave;tres permettent de prendre en charge l&amp;rsquo;Unicode.
Database Character Set National Character Set  Ces param&amp;egrave;tres
sont d&amp;eacute;finis lors de la cr&amp;eacute;ation de la base.
L&amp;rsquo;instruction CREATE DATABASE dispose de la clause character set
et de la clause national character set qui permettent de d&amp;eacute;clarer
le jeu de caract&amp;egrave;res qui servira de jeu de caract&amp;egrave;res de
la base et de jeu de caract&amp;egrave;res nationaux.  Sans
sp&amp;eacute;cification de la clause national character set, le jeu
AL16UTF16 sera utilis&amp;eacute; par d&amp;eacute;faut. Le param&amp;egrave;tre
Database Character Set ne peut pas &amp;ecirc;tre configur&amp;eacute; en
UTF-16. Oracle g&amp;egrave;re l&amp;rsquo;unicode au niveau des colonnes
gr&amp;acirc;ce National Character Set et au types de donn&amp;eacute;es
suivantes :  Nchar Nvarchar2 nclob  Sybase Au moment de
l&amp;rsquo;installation, vous devez d&amp;eacute;finir le param&amp;egrave;tre
default character set. Par d&amp;eacute;faut il est d&amp;eacute;termin&amp;eacute;
par celui utilis&amp;eacute; sur votre server (Win = 1252, solaris =ISO
8859-1). Sybase recommande de d&amp;eacute;finir UTF 8 pour ce
param&amp;egrave;tre si vous utiliser de l&amp;rsquo;unicode. Sybase supporte la
gestion de l&amp;rsquo;unicode au niveau du type de colonne &amp;agrave;
l&amp;rsquo;aide des 3 types suivants :  - Unichar - Univarchar - Unitext
Ces 3 types de donn&amp;eacute;es sont encod&amp;eacute;s en UTF 16. Sql server
Nous &amp;nbsp;allons introduire la notion de collation.  Une collation est
une table de correspondance sp&amp;eacute;cifique &amp;agrave; un jeu de
caract&amp;egrave;res.  Un jeu de caract&amp;egrave;res peut avoir plusieurs
collations, en g&amp;eacute;n&amp;eacute;ral une par langue (par exemple, latin1
fran&amp;ccedil;ais, latin1 su&amp;eacute;dois).  Ce param&amp;egrave;tre se
d&amp;eacute;finit &amp;agrave; l&amp;rsquo;installation, sa valeur par
d&amp;eacute;faut est en fonction de la langue de l&amp;rsquo;OS sur lequel se
fait l&amp;rsquo;installation (pour les collations de type windows) :
Syst&amp;egrave;me en fran&amp;ccedil;ais : French_CI_AS  Syst&amp;egrave;me en
anglais : Latin1_General_CI_AS  Il sert &amp;agrave; d&amp;eacute;terminer la
page de code utilis&amp;eacute;e dans les champs non unicode (varchar par
exemple), l&amp;rsquo;ordre de tri des cha&amp;icirc;nes de caract&amp;egrave;re et
aussi la sensibilit&amp;eacute; aux accents, aux majuscules, etc. La
collation param&amp;eacute;tr&amp;eacute;e s&amp;rsquo;applique aux bases de
donn&amp;eacute;es syst&amp;egrave;mes (master, msdb, tempdb et model) et par
d&amp;eacute;faut aux nouvelles bases de donn&amp;eacute;es
cr&amp;eacute;&amp;eacute;es. Elle peut cependant &amp;ecirc;tre modifi&amp;eacute;e
lors de la cr&amp;eacute;ation d&amp;rsquo;une nouvelle base de donn&amp;eacute;es
ou lors de l&amp;rsquo;ajout d&amp;rsquo;un champ texte gr&amp;acirc;ce au mot clef
COLLATE.  Sql server supporte la gestion de l&amp;rsquo;unicode &amp;agrave;
travers le type de colonne : - Nchar - Nvarchar - Ntext My sql MySQL
d&amp;eacute;termine le jeu de caract&amp;egrave;res et la collation en fonction
de l&amp;rsquo;option de configuration active quand le serveur
d&amp;eacute;marre ou en fonction des valeurs de configuration &amp;agrave;
l&amp;rsquo;ex&amp;eacute;cution. Vous pouvez utiliser
&amp;ndash;default-character-set=character_set_name comme jeu de
caract&amp;egrave;res et vous pouvez en m&amp;ecirc;me temps ajouter
&amp;ndash;default-collation=collation_name pour la collation. Par
d&amp;eacute;faut mysql utilise les options suivante
&amp;ndash;default-charset=latin1 &amp;ndash;collation=latin1_swedish_ci car
latin1_swedish_ci est la collation par d&amp;eacute;faut de latin1. La
collation peut aussi &amp;ecirc;tre d&amp;eacute;finie au niveau de la base ou
de la colonne &amp;agrave; l&amp;rsquo;aide de la clause collate. En MySQL
version 4.x et plus ancien, NCHAR et CHAR &amp;eacute;taient synonymes.
MySQL utilise UTF8 comme jeu de caract&amp;egrave;re pr&amp;eacute;d&amp;eacute;fini
pour les champs de types Nchar et Nvarchar .Autres articles &amp;agrave;
d&amp;eacute;couvrir sur le blog :  Modes de r&amp;eacute;cup&amp;eacute;ration et
journal de transactions, &amp;eacute;pisode 2 (David BAFFALEUF) [SQL Server]
Modes de r&amp;eacute;cup&amp;eacute;ration et journal de transactions,
&amp;eacute;pisode 1 (David BAFFALEUF) [SQL Server] Oracle, les Rpms plus de
souci avec YUM (Thierry GASCARD) [Oracle]</description>
      <pubDate>Fri, 23 Apr 2010 10:31:37 GMT</pubDate>
      <guid isPermaLink="false">http://blog.capdata.fr/?p=961</guid>
      <dc:date>2010-04-23T10:31:37Z</dc:date>
    </item>
    <item>
      <title>Jeux de caract�res, Unicode  et Base de donn�es</title>
      <link>http://blog.capdata.fr/?p=961</link>
      <description>Introduction Un caract&amp;egrave;re est un symbole ou un signe unique
appartenant &amp;agrave; un alphabet. Le jeu de caract&amp;egrave;res est un
ensemble de caract&amp;egrave;res &amp;agrave; repr&amp;eacute;senter. Il existe
plusieurs jeux de caract&amp;egrave;res, permettant de repr&amp;eacute;senter
diff&amp;eacute;rents alphabets du monde. Le standard ASCII       Afin de
r&amp;eacute;pertorier tous les caract&amp;egrave;res, un standard a
&amp;eacute;t&amp;eacute; mis en place. Le premier standard qui voit le jour est
l&amp;rsquo;ASCII.  Pour repr&amp;eacute;senter des caract&amp;egrave;res dans un
fichier texte, on associe un nombre (code) &amp;agrave; une lettre, &amp;agrave;
un chiffre ou &amp;agrave; un symbole. L&amp;rsquo;encodage le plus connu de
l&amp;rsquo;ASCII est US-ASCII.   A =&amp;gt; 65 =&amp;gt; 01000001  a =&amp;gt; 97
=&amp;gt; 01100001  Le codage est r&amp;eacute;alis&amp;eacute; sur 7bits/octet soit
128 symboles possibles. Une trentaine d&amp;rsquo;entre eux sont des
caract&amp;egrave;res de commande, le reste est constitu&amp;eacute; de
l&amp;rsquo;alphabet anglais standard, des chiffres et des ponctuations.
L&amp;rsquo;extension la plus connue est la famille ISO-8859, permettant de
repr&amp;eacute;senter les caract&amp;egrave;res accentu&amp;eacute;s. Le codage est
r&amp;eacute;alis&amp;eacute; sur un octet complet, soit 256 caract&amp;egrave;res
possibles. Les codes de 160 &amp;agrave; 255 sont affect&amp;eacute;s au codage
des caract&amp;egrave;res latins accentu&amp;eacute;s. Standards ISO-8859-1
&amp;agrave; 15  ISO-8859-1 puis 15 (euro): Europe de l&amp;rsquo;Ouest
ISO-8859-2: Europe Centrale ou de l&amp;rsquo;Est  ISO-8859-5: Cyrillique
ISO-8859-7: Grec     Les principaux probl&amp;egrave;mes rencontr&amp;eacute;s
avec ce standard sont les suivants : - On ne peut utiliser plusieurs
langues &amp;agrave; l&amp;rsquo;int&amp;eacute;rieur d&amp;rsquo;une m&amp;ecirc;me
instance. - Deux grands absents de l&amp;rsquo;ISO-Latin-1 sont la ligature
oe &amp;laquo; &amp;oelig; &amp;raquo;, essentielle &amp;agrave; la typographie
fran&amp;ccedil;aise correcte, et le symbole de l&amp;rsquo;euro &amp;laquo; &amp;euro;
&amp;raquo;. - Chaque constructeur d&amp;rsquo;ordinateur a aussi
d&amp;eacute;velopp&amp;eacute; ses propres codes non conformes aux standards
internationaux (IBM EBCDIC, Windows-1252,..)  L&amp;rsquo;unicode La
globalisation consiste &amp;agrave; int&amp;eacute;grer dans une m&amp;ecirc;me
table tous les caract&amp;egrave;res connus du monde.  Le standard Unicode
est un m&amp;eacute;canisme universel de codage de caract&amp;egrave;res. Il
d&amp;eacute;finit une mani&amp;egrave;re coh&amp;eacute;rente de coder des textes
multilingues et facilite l&amp;rsquo;&amp;eacute;change de donn&amp;eacute;es
textuelles.  Il est un passage obligatoire pour la plupart des nouveaux
protocoles de l&amp;rsquo;Internet, mis en &amp;oelig;uvre dans tous les
syst&amp;egrave;mes d&amp;rsquo;exploitation et langages informatiques modernes.
Formes de codage Il existe plusieurs formes de codage de
caract&amp;egrave;res pour l&amp;rsquo;Universal Character Set: - UCS-2 - UCS-4
Cependant, les codages UCS-2 et UCS-4 sont difficiles &amp;agrave; utiliser
dans de nombreuses applications et protocoles qui travaillent avec des
caract&amp;egrave;res cod&amp;eacute;s sur 8 ou m&amp;ecirc;me 7 bits. M&amp;ecirc;me
certains syst&amp;egrave;mes plus r&amp;eacute;cents capables de travailler avec
des caract&amp;egrave;res sur 16 bits ne peuvent pas traiter les
donn&amp;eacute;es cod&amp;eacute;es en UCS-4. Cette situation a conduit au
d&amp;eacute;veloppement de formats de transformation UTF (UCS
Transformation Formats). Chacun poss&amp;eacute;dant ses propres
caract&amp;eacute;ristiques. Encodage UTF 8 UTF-8 a &amp;eacute;t&amp;eacute;
con&amp;ccedil;u par Kenneth Thompson en 1992 pour &amp;ecirc;tre compatible
avec certains logiciels originellement pr&amp;eacute;vus pour traiter des
caract&amp;egrave;res d&amp;rsquo;un seul octet.  Les caract&amp;egrave;res de
num&amp;eacute;ro 0 &amp;agrave; 127 sont cod&amp;eacute;s sur un octet dont le bit
de poids fort est toujours nul. Les caract&amp;egrave;res de num&amp;eacute;ro
sup&amp;eacute;rieur &amp;agrave; 127 sont cod&amp;eacute;s sur plusieurs octets.
Encodage UTF 16 UTF-16 est une m&amp;eacute;thode permettant de transformer
un sous-ensemble de la table UCS-4 en une paire de valeurs UCS-2
d&amp;rsquo;une plage r&amp;eacute;serv&amp;eacute;e.  UTF-16 est
d&amp;eacute;compos&amp;eacute; en 2 types. UTF-16-BE (Big-endian) UTF-16-LE
(Little-endian) Le codage UTF-16-BE est l&amp;rsquo;un des codages
pr&amp;eacute;conis&amp;eacute;s par la norme Unicode. Ce codage associe
simplement un code de 16 bits (2 octets) &amp;agrave; chaque
caract&amp;egrave;re. Encodage UTF 32 UTF-32 est un protocole pour encoder
les caract&amp;egrave;res sur 32 bits. Du fait que l&amp;rsquo;UTF-32 utilise 4
bytes par caract&amp;egrave;re.  Il est aussi &amp;nbsp;d&amp;eacute;compos&amp;eacute;
en 2 types. UTF-32-BE (Big-endian) UTF-32-LE (Little-endian) Il est
relativement consommateur d&amp;rsquo;espace. Support SGBD  Oracle Deux
param&amp;egrave;tres permettent de prendre en charge l&amp;rsquo;Unicode.
Database Character Set National Character Set  Ces param&amp;egrave;tres
sont d&amp;eacute;finis lors de la cr&amp;eacute;ation de la base.
L&amp;rsquo;instruction CREATE DATABASE dispose de la clause character set
et de la clause national character set qui permettent de d&amp;eacute;clarer
le jeu de caract&amp;egrave;res qui servira de jeu de caract&amp;egrave;res de
la base et de jeu de caract&amp;egrave;res nationaux.  Sans
sp&amp;eacute;cification de la clause national character set, le jeu
AL16UTF16 sera utilis&amp;eacute; par d&amp;eacute;faut. Le param&amp;egrave;tre
Database Character Set ne peut pas &amp;ecirc;tre configur&amp;eacute; en
UTF-16. Oracle g&amp;egrave;re l&amp;rsquo;unicode au niveau des colonnes
gr&amp;acirc;ce National Character Set et au types de donn&amp;eacute;es
suivantes :  Nchar Nvarchar2 nclob  Sybase Au moment de
l&amp;rsquo;installation, vous devez d&amp;eacute;finir le param&amp;egrave;tre
default character set. Par d&amp;eacute;faut il est d&amp;eacute;termin&amp;eacute;
par celui utilis&amp;eacute; sur votre server (Win = 1252, solaris =ISO
8859-1). Sybase recommande de d&amp;eacute;finir UTF 8 pour ce
param&amp;egrave;tre si vous utiliser de l&amp;rsquo;unicode. Sybase supporte la
gestion de l&amp;rsquo;unicode au niveau du type de colonne &amp;agrave;
l&amp;rsquo;aide des 3 types suivants :  - Unichar - Univarchar - Unitext
Ces 3 types de donn&amp;eacute;es sont encod&amp;eacute;s en UTF 16. Sql server
Nous &amp;nbsp;allons introduire la notion de collation.  Une collation est
une table de correspondance sp&amp;eacute;cifique &amp;agrave; un jeu de
caract&amp;egrave;res.  Un jeu de caract&amp;egrave;res peut avoir plusieurs
collations, en g&amp;eacute;n&amp;eacute;ral une par langue (par exemple, latin1
fran&amp;ccedil;ais, latin1 su&amp;eacute;dois).  Ce param&amp;egrave;tre se
d&amp;eacute;finit &amp;agrave; l&amp;rsquo;installation, sa valeur par
d&amp;eacute;faut est en fonction de la langue de l&amp;rsquo;OS sur lequel se
fait l&amp;rsquo;installation (pour les collations de type windows) :
Syst&amp;egrave;me en fran&amp;ccedil;ais : French_CI_AS  Syst&amp;egrave;me en
anglais : Latin1_General_CI_AS  Il sert &amp;agrave; d&amp;eacute;terminer la
page de code utilis&amp;eacute;e dans les champs non unicode (varchar par
exemple), l&amp;rsquo;ordre de tri des cha&amp;icirc;nes de caract&amp;egrave;re et
aussi la sensibilit&amp;eacute; aux accents, aux majuscules, etc. La
collation param&amp;eacute;tr&amp;eacute;e s&amp;rsquo;applique aux bases de
donn&amp;eacute;es syst&amp;egrave;mes (master, msdb, tempdb et model) et par
d&amp;eacute;faut aux nouvelles bases de donn&amp;eacute;es
cr&amp;eacute;&amp;eacute;es. Elle peut cependant &amp;ecirc;tre modifi&amp;eacute;e
lors de la cr&amp;eacute;ation d&amp;rsquo;une nouvelle base de donn&amp;eacute;es
ou lors de l&amp;rsquo;ajout d&amp;rsquo;un champ texte gr&amp;acirc;ce au mot clef
COLLATE.  Sql server supporte la gestion de l&amp;rsquo;unicode &amp;agrave;
travers le type de colonne : - Nchar - Nvarchar - Ntext My sql MySQL
d&amp;eacute;termine le jeu de caract&amp;egrave;res et la collation en fonction
de l&amp;rsquo;option de configuration active quand le serveur
d&amp;eacute;marre ou en fonction des valeurs de configuration &amp;agrave;
l&amp;rsquo;ex&amp;eacute;cution. Vous pouvez utiliser
&amp;ndash;default-character-set=character_set_name comme jeu de
caract&amp;egrave;res et vous pouvez en m&amp;ecirc;me temps ajouter
&amp;ndash;default-collation=collation_name pour la collation. Par
d&amp;eacute;faut mysql utilise les options suivante
&amp;ndash;default-charset=latin1 &amp;ndash;collation=latin1_swedish_ci car
latin1_swedish_ci est la collation par d&amp;eacute;faut de latin1. La
collation peut aussi &amp;ecirc;tre d&amp;eacute;finie au niveau de la base ou
de la colonne &amp;agrave; l&amp;rsquo;aide de la clause collate. En MySQL
version 4.x et plus ancien, NCHAR et CHAR &amp;eacute;taient synonymes.
MySQL utilise UTF8 comme jeu de caract&amp;egrave;re pr&amp;eacute;d&amp;eacute;fini
pour les champs de types Nchar et Nvarchar .Autres articles &amp;agrave;
d&amp;eacute;couvrir sur le blog :  Modes de r&amp;eacute;cup&amp;eacute;ration et
journal de transactions, &amp;eacute;pisode 2 (David BAFFALEUF) [SQL Server]
Modes de r&amp;eacute;cup&amp;eacute;ration et journal de transactions,
&amp;eacute;pisode 1 (David BAFFALEUF) [SQL Server] Oracle, les Rpms plus de
souci avec YUM (Thierry GASCARD) [Oracle]</description>
      <pubDate>Fri, 23 Apr 2010 10:31:37 GMT</pubDate>
      <guid isPermaLink="false">http://blog.capdata.fr/?p=961</guid>
      <dc:date>2010-04-23T10:31:37Z</dc:date>
    </item>
    <item>
      <title>Attraper un virus... est couvert par un brevet logiciel</title>
      <link>http://moosh.et.son.brol.be/blog/index.php/2010/04/23/1066-attraper-un-virus-est-couvert-par-un-brevet-logiciel</link>
      <description>Attraper un virus...  est couvert par un brevet logiciel    Source et
d&amp;eacute;tails&amp;nbsp;: attraper un virus     Cr&amp;eacute;er un
environnement informatique &amp;eacute;mul&amp;eacute; et y tester un flux de
donn&amp;eacute;es avant de l'accepter dans l'environnement informatique
r&amp;eacute;el est une chose utile et difficile &amp;agrave; faire.   Toute
personne qui cherche &amp;agrave; faire il devra demander un permis de
&amp;quot;Quantum Leap Technologies&amp;quot;.    autres ressources    La mythes
des brevets logiciels L'absurdit&amp;eacute; appliqu&amp;eacute;e liste des
brevets liste &amp;quot;d'exemples&amp;quot; Controverse sur la
brevetabilit&amp;eacute; du logiciel Le brevet d'IBM sur les toilettes
publiques (octobre 2002, sur News.Com)&amp;nbsp;: un syst&amp;egrave;me
bas&amp;eacute; sur la r&amp;egrave;gle premier arriv&amp;eacute;, permier servi.
IBM a finalement renonc&amp;eacute; &amp;agrave; ce brevet. Le brevet de British
Telecom et les liens hypertextes (ao&amp;ucirc;t 2002, sur ZDNet.fr).
British Telecom avait tent&amp;eacute;, sans succ&amp;egrave;s, d'imposer une
licence &amp;agrave; des fournisseurs d'acc&amp;egrave;s Internet, et avait
alors poursuivi l'un d'eux en justice; proc&amp;egrave;s perdu apr&amp;egrave;s
un an et demi.     webshop  Sources  pour texte et image du
webshop&amp;nbsp;:
http://gibuskro.lautre.net/informatology/webshop/webshop_fr.html
http://ffii.fr/Boutique-web-europeenne-brevetee   l&amp;eacute;gende
Boutique web&amp;nbsp;: syst&amp;egrave;me de vente sur un r&amp;eacute;seau
informatique utilisant un ordinateur acheteur, un ordinateur marchand et
un ordinateur de payement ou utilisant un client et un serveur -
EP803105  et EP738446 Commande par t&amp;eacute;l&amp;eacute;phone
portable&amp;nbsp;: vente sur un r&amp;eacute;seau de t&amp;eacute;l&amp;eacute;phones
mobiles - EP1090494 Panier d'achat&amp;nbsp;: panier d'achat
&amp;eacute;l&amp;eacute;ctronique - EP807891 et EP784279 Musiques Films
Livres&amp;nbsp;: onglets - EP689133 Lien vers une image&amp;nbsp;:
fen&amp;ecirc;tre de pr&amp;eacute;visualisation - EP537100
Voir/t&amp;eacute;l&amp;eacute;charger un film: distribution de donn&amp;eacute;es
vid&amp;eacute;o sur le web - EP933892 Voir le film&amp;nbsp;: Diffusion
vid&amp;eacute;o (&amp;quot;vid&amp;eacute;o segment&amp;eacute;e &amp;agrave; la
demande&amp;quot;) - EP633694 Format MP3&amp;nbsp;: Format de compression audio,
couvert par de nombreux brevets, par ex. EP287578 Carte de
cr&amp;eacute;dit&amp;nbsp;: paiement via Internet utilisant une carte de
cr&amp;eacute;dit - EP820620 et EP779587 Cadeau&amp;nbsp;: commande d'un cadeau
pour quelqu'un via Internet en indiquant son adresse de courrier
&amp;eacute;lecttronique - EP927945 (note: the claims on the target page are
less broad than the eventually granted claims in the B1 form of the
patent) Demande de pr&amp;ecirc;t&amp;nbsp;: application de pr&amp;ecirc;t
automatique - EP715740 VISA&amp;nbsp;: signature &amp;eacute;lectronique dans un
graphique pour montrer que la boutique est agr&amp;eacute;&amp;eacute;e &amp;agrave;
recevoir des paiements par carte VISA - EP798657 Envoi d'offres
promotionnelles&amp;nbsp;: envoi d'offres en r&amp;eacute;ponse &amp;agrave; une
requ&amp;ecirc;te - EP986016 Envoi &amp;agrave; un vendeur&amp;nbsp;: redirection
des commandes vers un vendeur - EP217308 Bases de donn&amp;eacute;es de
support&amp;nbsp;: syst&amp;egrave;me r&amp;eacute;seau de support utilisant des
bases de donn&amp;eacute;es - EP673135 Aper&amp;ccedil;u de
chap&amp;icirc;tres&amp;nbsp;: utilisation d'une t&amp;eacute;l&amp;eacute;vision comme
m&amp;eacute;taphore pour choisir divers extraits vid&amp;eacute;o - EP670652
Image de coccinelle&amp;nbsp;: format JPEG - EP266049 R&amp;eacute;sultats
apparent&amp;eacute;s&amp;nbsp;: affichage de r&amp;eacute;sultats apparent&amp;eacute;s
si le client appr&amp;eacute;cie les r&amp;eacute;sultats actuels - EP628919
Code de r&amp;eacute;duction&amp;nbsp;: possibilit&amp;eacute; pour les clients
d'entrer des codes de r&amp;eacute;duction - EP370847 Gravure en
magasin&amp;nbsp;: reproduction mat&amp;eacute;rielle de l'information
situ&amp;eacute; dans un endroit distant - EP195098</description>
      <pubDate>Fri, 23 Apr 2010 08:00:00 GMT</pubDate>
      <guid isPermaLink="false">http://moosh.et.son.brol.be/blog/index.php/2010/04/23/1066-attraper-un-virus-est-couvert-par-un-brevet-logiciel</guid>
      <dc:date>2010-04-23T08:00:00Z</dc:date>
    </item>
    <item>
      <title>MAMP 1.9 de sortie</title>
      <link>http://www.mac4ever.com/news/53646/mamp_1_9_de_sortie/</link>
      <description>MAMP, l'outil permettant d'obtenir un environnement Apache MySQL PHP
sort en version 1.9. Cette nouvelle version apporte le support
tr&amp;egrave;s attendu de PHP 5.3, (PHP 5.2.13 est &amp;eacute;galement
disponible). Les divers logiciels embarqu&amp;eacute;s par d&amp;eacute;faut
sont &amp;eacute;galement mis &amp;agrave; jour, tel phpMyAdmin (3.2.5),...</description>
      <pubDate>Thu, 22 Apr 2010 09:11:56 GMT</pubDate>
      <guid isPermaLink="false">http://www.mac4ever.com/news/53646/mamp_1_9_de_sortie/</guid>
      <dc:date>2010-04-22T09:11:56Z</dc:date>
    </item>
    <item>
      <title>Chive</title>
      <link>http://www.nexen.net/actualites/php/19613-chive.php</link>
      <description>Chive est une nouvelle API r&amp;eacute;alis&amp;eacute;e en PHP/Ajax, sous
licence GPL. Il a comme but d'&amp;ecirc;tre une alternative &amp;agrave;
phpMyAdmin et propose une solution plus moderne, avec un design
diff&amp;eacute;rent et plus efficace pour l'administration des bases de
donn&amp;eacute;es MySQL. Il propose une coloration syntaxique, vous
permettant de rep&amp;eacute;rer les erreurs &amp;eacute;ventuelles lors de vos
d&amp;eacute;veloppements. Par ailleurs, l'API propose diff&amp;eacute;rents
skins, permettant d'obtenir votre propre environnement. A l'heure
actuelle, il fonctionne uniquement sous linux, mais devrait &amp;ecirc;tre
disponible sur les autres syst&amp;egrave;mes d'exploitation. Du cot&amp;eacute;
des fonctionnalit&amp;eacute;s, vous retrouverez l'ensemble des fonctions
communes aux autres projets identiques :   Creation et gestion d'une
base de donn&amp;eacute;es Navigation Gestion utilisateur Editeur avec
coloration syntaxique Import et Export  Sur le site officiel, des
captures d'&amp;eacute;crans sont disponibles &amp;nbsp;Site officiel projet
Chive (0 visite)</description>
      <pubDate>Wed, 21 Apr 2010 07:00:13 GMT</pubDate>
      <guid isPermaLink="false">http://www.nexen.net/actualites/php/19613-chive.php</guid>
      <dc:date>2010-04-21T07:00:13Z</dc:date>
    </item>
    <item>
      <title>35 Tutoriaux PHP et techniques de développement</title>
      <link>http://www.nexen.net/actualites/php/19611-35_tutoriaux_php_et_techniques_de_developpement.php</link>
      <description>Le site SmashingBuzz a regroup&amp;eacute; dans une page 35 tutoriaux pour
utiliser le langage PHP et ses techniques de d&amp;eacute;veloppement. La
liste propos&amp;eacute;e est une synth&amp;egrave;se d'astuces de ce qui a
&amp;eacute;t&amp;eacute; r&amp;eacute;alis&amp;eacute; par de nombreux sites webs. Les
astuces sont :   Affichage des dossiers en PHP et Jquery Manipulation
des images en PHP D&amp;eacute;marrer avec PHP et MySQL &amp;agrave; partir de
Z&amp;eacute;ro Validation de formulaires CodeIgniter Commentaires et
notations Librairies graphiques AutoSuggest Cr&amp;eacute;ation d'un
diaporama Google Analytics Formulaire de contact avec Ajax Flux RSS XML
Utilisation Flick'r, Facebook, Twitter ... &amp;nbsp;35 Ready Usefull PHP
Tutorial And development techniques (0 visite)</description>
      <pubDate>Tue, 20 Apr 2010 00:37:04 GMT</pubDate>
      <guid isPermaLink="false">http://www.nexen.net/actualites/php/19611-35_tutoriaux_php_et_techniques_de_developpement.php</guid>
      <dc:date>2010-04-20T00:37:04Z</dc:date>
    </item>
    <item>
      <title>35 Tutoriaux PHP et techniques de d�veloppement</title>
      <link>http://www.nexen.net/actualites/php/19611-35_tutoriaux_php_et_techniques_de_developpement.php</link>
      <description>Le site SmashingBuzz a regroup&amp;eacute; dans une page 35 tutoriaux pour
utiliser le langage PHP et ses techniques de d&amp;eacute;veloppement. La
liste propos&amp;eacute;e est une synth&amp;egrave;se d'astuces de ce qui a
&amp;eacute;t&amp;eacute; r&amp;eacute;alis&amp;eacute; par de nombreux sites webs. Les
astuces sont :   Affichage des dossiers en PHP et Jquery Manipulation
des images en PHP D&amp;eacute;marrer avec PHP et MySQL &amp;agrave; partir de
Z&amp;eacute;ro Validation de formulaires CodeIgniter Commentaires et
notations Librairies graphiques AutoSuggest Cr&amp;eacute;ation d'un
diaporama Google Analytics Formulaire de contact avec Ajax Flux RSS XML
Utilisation Flick'r, Facebook, Twitter ... &amp;nbsp;35 Ready Usefull PHP
Tutorial And development techniques (0 visite)</description>
      <pubDate>Tue, 20 Apr 2010 00:37:04 GMT</pubDate>
      <guid isPermaLink="false">http://www.nexen.net/actualites/php/19611-35_tutoriaux_php_et_techniques_de_developpement.php</guid>
      <dc:date>2010-04-20T00:37:04Z</dc:date>
    </item>
    <item>
      <title>Timestamp VS Datetime</title>
      <link>http://moosh.et.son.brol.be/blog/index.php/2010/04/18/1065-timestamp-vs-datetime</link>
      <description>Jeudi  en buvant un verre avec un ami, il me demande la
diff&amp;eacute;rence entre un Datetime et un timestamps.   J'ai
r&amp;eacute;pondu mais je me doutais que je n'&amp;eacute;tais pas exhaustif.
J'ai donc un peu relu. Ca fait toujours du bien.   1&amp;deg; la taille
Datetime -&amp;gt; 8 bytes alors que timestamp c'est 4 bytes   Si on a pas
besoin de stocker une date et une heure, on a d'autres
possibilit&amp;eacute;s.   Date ou Time c'est 3 Bytes Year C'est 1 byte
2&amp;deg; Les dates repr&amp;eacute;sentables   Date et DateTime -&amp;gt;
Ann&amp;eacute;e 1000 &amp;agrave; 9999 Year  -&amp;gt; Ann&amp;eacute;e 1901 &amp;agrave;
2155 Timestamp -&amp;gt; Ann&amp;eacute;e 1970 &amp;agrave; 2036   3&amp;deg;
&amp;quot;default&amp;quot; magiques  Timestamp peut &amp;ecirc;tre mis &amp;agrave;
jour &amp;agrave; la date serveur lors d'une cr&amp;eacute;ation ou mise
&amp;agrave; jour de records.   4&amp;deg; Particularit&amp;eacute;
suppl&amp;eacute;mentaire pour mysql   Les valeurs du ``z&amp;eacute;ro''
DATETIME  '0000-00-00 00:00:00' DATE  '0000-00-00' TIMESTAMP
00000000000000 (la longueur d&amp;eacute;pend de la taille de l'affichage)
TIME  '00:00:00' YEAR  0000   Cela peut-&amp;ecirc;tre
d&amp;eacute;sactiv&amp;eacute; avec certains modes.      Affichage et format
Bien que les valeurs TIMESTAMP soient stock&amp;eacute;es avec une
pr&amp;eacute;cision d'une seconde, la seule fonction qui travaille
directement avec ces valeurs est la fonction UNIX_TIMESTAMP(). Les
autres fonctions op&amp;egrave;rent sur des valeurs lues et format&amp;eacute;es.</description>
      <pubDate>Sun, 18 Apr 2010 19:49:53 GMT</pubDate>
      <guid isPermaLink="false">http://moosh.et.son.brol.be/blog/index.php/2010/04/18/1065-timestamp-vs-datetime</guid>
      <dc:date>2010-04-18T19:49:53Z</dc:date>
    </item>
    <item>
      <title>Le journal d’erreurs de MySQL</title>
      <link>http://www.dbnewz.com/?p=546</link>
      <description>Les informations recueillies dans le journal d&amp;rsquo;erreurs sont
tr&amp;egrave;s int&amp;eacute;ressantes &amp;agrave; examiner, non seulement en cas
de crash, mais aussi de fa&amp;ccedil;on p&amp;eacute;riodique pour
d&amp;eacute;tecter d&amp;rsquo;&amp;eacute;ventuels probl&amp;egrave;mes. Ce billet va
vous rappeler le r&amp;ocirc;le de ce journal, vous indiquer quelles sont
les options de configuration et vous donner quelques bonnes pratiques
pour &amp;eacute;viter les pi&amp;egrave;ges les plus fr&amp;eacute;quents.
Commen&amp;ccedil;ons par le plus simple : que contient ce journal ? Facile
: toutes les erreurs rencontr&amp;eacute;es par le serveur. Mais vous y
trouverez &amp;eacute;galement d&amp;rsquo;autres informations, comme par
exemple les arr&amp;ecirc;ts et d&amp;eacute;marrages du serveur. Par
d&amp;eacute;faut, l&amp;rsquo;option log_warnings est activ&amp;eacute;e (valeur
&amp;agrave; 1), ce qui signifie que les messages d&amp;rsquo;avertissement sont
&amp;eacute;galement pr&amp;eacute;sents. Si vous ne souhaitez pas avoir les
message d&amp;rsquo;avertissement, il vous suffit de positionner cette
variable &amp;agrave; 0. A l&amp;rsquo;inverse, si vous voulez avoir des
informations suppl&amp;eacute;mentaires, telles que les probl&amp;egrave;mes
r&amp;eacute;seaux, vous pouvez positionner cette variable &amp;agrave; 2. Pour
les utilisateurs de Windows, sachez que certaines donn&amp;eacute;es sont
reprises dans le journal des &amp;eacute;v&amp;eacute;nements. Voil&amp;agrave; pour
la partie facile. Les choses se compliquent d&amp;eacute;j&amp;agrave; un peu
plus quand on cherche &amp;agrave; savoir o&amp;ugrave; se trouve le fichier
d&amp;rsquo;erreur&amp;hellip; A priori pourtant, ce n&amp;rsquo;est pas difficile,
il suffit de regarder du c&amp;ocirc;t&amp;eacute; de la variable log_error.
Celle-ci peut prendre 3 valeurs :  cha&amp;icirc;ne vide (par
d&amp;eacute;faut), le journal d&amp;rsquo;erreurs s&amp;rsquo;appelle alors
[hostname].err et se trouve dans le r&amp;eacute;pertoire de donn&amp;eacute;es
un nom d&amp;rsquo;un fichier, dans ce cas, le journal se trouve dans le
r&amp;eacute;pertoire de donn&amp;eacute;es et porte le nom indiqu&amp;eacute; le
chemin absolu d&amp;rsquo;un fichier, alors le journal se trouve &amp;agrave;
l&amp;rsquo;emplacement indiqu&amp;eacute;  Cela signifie que dans les deux
premiers cas, il faut &amp;eacute;galement regarder la variable datadir pour
conna&amp;icirc;tre l&amp;rsquo;emplacement du r&amp;eacute;pertoire de
donn&amp;eacute;es. Deux petites remarques au passage :  il n&amp;rsquo;est pas
possible de d&amp;eacute;sactiver le journal d&amp;rsquo;erreurs le journal est
toujours &amp;eacute;crit dans un fichier et jamais dans une table comme
vous pouvez le faire pour la general log et la slow log &amp;agrave; partir
de la version 5.1  En r&amp;eacute;alit&amp;eacute;, c&amp;rsquo;est encore un peu
plus compliqu&amp;eacute;. Dans certaines distributions Linux, comme Debian
ou Ubuntu par exemple, le journal passe par syslog. Les
&amp;eacute;v&amp;eacute;nements ont alors un tag mysqld_safe ou mysqld selon
leur origine. La raison en est une petite variable bien cach&amp;eacute;e
dans un fichier &amp;hellip; lui aussi bien cach&amp;eacute; : si vous regardez
dans le r&amp;eacute;pertoire /etc/mysql/conf.d/, vous y trouverez un
fichier mysld_safe_syslog.cnf qui contient simplement la directive
suivante : [mysqld_safe] syslog A partir de la version 5.1, la variable
syslog est disponible en standard (mais pas pour Windows bien s&amp;ucirc;r
!). Est-ce un bon choix d&amp;rsquo;utiliser cette variable syslog ? La
r&amp;eacute;ponse va sans doute d&amp;eacute;pendre de votre mani&amp;egrave;re de
surveiller les logs : si vous ne vous int&amp;eacute;ressez
qu&amp;rsquo;&amp;agrave; MySQL, devoir retrouver les &amp;eacute;v&amp;eacute;nements
li&amp;eacute;s &amp;agrave; MySQL parmi tous les autres
&amp;eacute;v&amp;eacute;nements va &amp;ecirc;tre laborieux, mais au contraire, si
MySQL n&amp;rsquo;est qu&amp;rsquo;une application parmi tant d&amp;rsquo;autres, il
vous sera bien agr&amp;eacute;able d&amp;rsquo;avoir un journal d&amp;rsquo;erreurs
dans un format standard. Subtilit&amp;eacute; ou complication
suppl&amp;eacute;mentaire, vous pouvez m&amp;ecirc;me avoir votre journal
d&amp;rsquo;erreur en double, une premi&amp;egrave;re fois via syslog et une
deuxi&amp;egrave;me fois dans le fichier d&amp;rsquo;erreur classique. Comment
faire ? Il vous faut activer en m&amp;ecirc;me temps la variable syslog et
la variable log_error : [mysqld_safe] syslog  [mysqld] log_error =
error.log Quel est l&amp;rsquo;int&amp;eacute;r&amp;ecirc;t ? A vrai dire, je
n&amp;rsquo;en vois pas vraiment &amp;hellip;   Voyons maintenant quelques
bonnes pratiques. La premi&amp;egrave;re question &amp;agrave; vous poser, en
supposant que vous &amp;ecirc;tes sous Linux et que votre version ou votre
distribution vous en donne la possibilit&amp;eacute;, est de savoir si vous
souhaitez utiliser syslog ou pas. Si oui, il vous suffit de positionner
la variable syslog dans la section [mysqld_safe] du fichier my.cnf et la
configuration est termin&amp;eacute;e. Sinon, si vous laissez la variable
&amp;agrave; vide ou si vous mettez un nom de fichier, votre journal
d&amp;rsquo;erreurs va se trouver dans le r&amp;eacute;pertoire de
donn&amp;eacute;es, ce qui n&amp;rsquo;est pas souhaitable. M&amp;ecirc;me
s&amp;rsquo;il existe peu de chances que le journal d&amp;rsquo;erreurs
remplisse tout l&amp;rsquo;espace disque disponible dans le
r&amp;eacute;pertoire de donn&amp;eacute;es (c&amp;rsquo;est plus plausible avec les
logs bins), il est en effet toujours mieux de ne pas m&amp;eacute;langer les
torchons et les serviettes : les donn&amp;eacute;es avec les donn&amp;eacute;es
et les logs avec les logs ! De plus, vous risquez d&amp;rsquo;avoir des
probl&amp;egrave;mes de droit : dans le r&amp;eacute;pertoire de donn&amp;eacute;es,
seul les utilisateurs du groupe mysql ont le droit
d&amp;rsquo;acc&amp;eacute;der &amp;agrave; ce fichier, alors que vous aurez
peut-&amp;ecirc;tre besoin de donner des acc&amp;egrave;s &amp;agrave;
d&amp;rsquo;autres utilisateurs sans pour autant leur laisser un
acc&amp;egrave;s aux donn&amp;eacute;es. Il est donc conseill&amp;eacute; de saisir
un chemin absolu vers un fichier, par exemple : [mysqld] log_error =
/var/log/mysql/error.log Un autre aspect &amp;agrave; prendre en compte est
celui de la rotation. En effet, si vous n&amp;rsquo;y faites pas attention,
la rotation des logs risque de vous faire perdre une grande partie des
informations du journal d&amp;rsquo;erreurs ! Le premier point &amp;agrave;
constater est que la rotation du journal d&amp;rsquo;erreurs ne se fait pas
automatiquement au d&amp;eacute;marrage du serveur ou lorsque la taille du
fichier d&amp;eacute;passe une certaine limite. La seule possibilit&amp;eacute;
consiste &amp;agrave; ex&amp;eacute;cuter la commande FLUSH LOGS (qui affecte
&amp;eacute;galement les autres logs). Quand vous utilisez syslog, par
d&amp;eacute;faut, votre syst&amp;egrave;me fait une rotation tous les jours, et
les logs sont purg&amp;eacute;es apr&amp;egrave;s 7 jours. Sauf si vous prenez
des mesures pour sauvegarder les logs apr&amp;egrave;s leur rotation, vous
avez donc seulement le journal des erreurs des 7 derniers jours &amp;agrave;
votre disposition. Mais quand vous utilisez un journal d&amp;rsquo;erreurs
classique, la situation est beaucoup plus dangereuse ! En effet,
l&amp;rsquo;appel de la commande FLUSH LOGS cr&amp;eacute;&amp;eacute; un nouveau
journal d&amp;rsquo;erreurs et sauvegarde l&amp;rsquo;ancien dans un fichier
avec le suffixe -old. Et si vous aviez d&amp;eacute;j&amp;agrave; un fichier
-old, celui-ci est purement et simplement supprim&amp;eacute; ! Petite
d&amp;eacute;mo : stephane@cilaos:/var/lib/mysql$ ll | grep error -rw-rw----
1 ...     2817 2010-04-16 10:46 error.log -rw-rw---- 1 ...      939
2010-04-16 10:45 error.log-old J&amp;rsquo;ai bien un journal
d&amp;rsquo;erreurs ainsi qu&amp;rsquo;un journal en -old.
J&amp;rsquo;ex&amp;eacute;cute FLUSH LOGS pour voir l&amp;rsquo;effet :
stephane@cilaos:/var/lib/mysql$ mysql -uroot -p -e &amp;quot;FLUSH
LOGS&amp;quot; Enter password: stephane@cilaos:/var/lib/mysql$ ll | grep
error -rw-rw---- 1 ...        0 2010-04-16 10:47 error.log -rw-rw---- 1
...     2817 2010-04-16 10:46 error.log-old Et voil&amp;agrave;, mes
anciennes erreurs sont perdues &amp;agrave; tout jamais&amp;hellip; Conclusion :
mieux vaut sauvegarder r&amp;eacute;guli&amp;egrave;rement son journal
d&amp;rsquo;erreurs car nul n&amp;rsquo;est &amp;agrave; l&amp;rsquo;abri d&amp;rsquo;un
FLUSH LOGS non pr&amp;eacute;vu. Notre exploration du journal
d&amp;rsquo;erreurs est termin&amp;eacute;e, et nous reviendrons bient&amp;ocirc;t
sur un autre journal extr&amp;ecirc;mement important : le journal des
requ&amp;ecirc;tes lentes.</description>
      <pubDate>Fri, 16 Apr 2010 16:16:53 GMT</pubDate>
      <guid isPermaLink="false">http://www.dbnewz.com/?p=546</guid>
      <dc:date>2010-04-16T16:16:53Z</dc:date>
    </item>
    <item>
      <title>Le journal d?erreurs de MySQL</title>
      <link>http://www.dbnewz.com/?p=546</link>
      <description>Les informations recueillies dans le journal d&amp;rsquo;erreurs sont
tr&amp;egrave;s int&amp;eacute;ressantes &amp;agrave; examiner, non seulement en cas
de crash, mais aussi de fa&amp;ccedil;on p&amp;eacute;riodique pour
d&amp;eacute;tecter d&amp;rsquo;&amp;eacute;ventuels probl&amp;egrave;mes. Ce billet va
vous rappeler le r&amp;ocirc;le de ce journal, vous indiquer quelles sont
les options de configuration et vous donner quelques bonnes pratiques
pour &amp;eacute;viter les pi&amp;egrave;ges les plus fr&amp;eacute;quents.
Commen&amp;ccedil;ons par le plus simple : que contient ce journal ? Facile
: toutes les erreurs rencontr&amp;eacute;es par le serveur. Mais vous y
trouverez &amp;eacute;galement d&amp;rsquo;autres informations, comme par
exemple les arr&amp;ecirc;ts et d&amp;eacute;marrages du serveur. Par
d&amp;eacute;faut, l&amp;rsquo;option log_warnings est activ&amp;eacute;e (valeur
&amp;agrave; 1), ce qui signifie que les messages d&amp;rsquo;avertissement sont
&amp;eacute;galement pr&amp;eacute;sents. Si vous ne souhaitez pas avoir les
message d&amp;rsquo;avertissement, il vous suffit de positionner cette
variable &amp;agrave; 0. A l&amp;rsquo;inverse, si vous voulez avoir des
informations suppl&amp;eacute;mentaires, telles que les probl&amp;egrave;mes
r&amp;eacute;seaux, vous pouvez positionner cette variable &amp;agrave; 2. Pour
les utilisateurs de Windows, sachez que certaines donn&amp;eacute;es sont
reprises dans le journal des &amp;eacute;v&amp;eacute;nements. Voil&amp;agrave; pour
la partie facile. Les choses se compliquent d&amp;eacute;j&amp;agrave; un peu
plus quand on cherche &amp;agrave; savoir o&amp;ugrave; se trouve le fichier
d&amp;rsquo;erreur&amp;hellip; A priori pourtant, ce n&amp;rsquo;est pas difficile,
il suffit de regarder du c&amp;ocirc;t&amp;eacute; de la variable log_error.
Celle-ci peut prendre 3 valeurs :  cha&amp;icirc;ne vide (par
d&amp;eacute;faut), le journal d&amp;rsquo;erreurs s&amp;rsquo;appelle alors
[hostname].err et se trouve dans le r&amp;eacute;pertoire de donn&amp;eacute;es
un nom d&amp;rsquo;un fichier, dans ce cas, le journal se trouve dans le
r&amp;eacute;pertoire de donn&amp;eacute;es et porte le nom indiqu&amp;eacute; le
chemin absolu d&amp;rsquo;un fichier, alors le journal se trouve &amp;agrave;
l&amp;rsquo;emplacement indiqu&amp;eacute;  Cela signifie que dans les deux
premiers cas, il faut &amp;eacute;galement regarder la variable datadir pour
conna&amp;icirc;tre l&amp;rsquo;emplacement du r&amp;eacute;pertoire de
donn&amp;eacute;es. Deux petites remarques au passage :  il n&amp;rsquo;est pas
possible de d&amp;eacute;sactiver le journal d&amp;rsquo;erreurs le journal est
toujours &amp;eacute;crit dans un fichier et jamais dans une table comme
vous pouvez le faire pour la general log et la slow log &amp;agrave; partir
de la version 5.1  En r&amp;eacute;alit&amp;eacute;, c&amp;rsquo;est encore un peu
plus compliqu&amp;eacute;. Dans certaines distributions Linux, comme Debian
ou Ubuntu par exemple, le journal passe par syslog. Les
&amp;eacute;v&amp;eacute;nements ont alors un tag mysqld_safe ou mysqld selon
leur origine. La raison en est une petite variable bien cach&amp;eacute;e
dans un fichier &amp;hellip; lui aussi bien cach&amp;eacute; : si vous regardez
dans le r&amp;eacute;pertoire /etc/mysql/conf.d/, vous y trouverez un
fichier mysld_safe_syslog.cnf qui contient simplement la directive
suivante : [mysqld_safe] syslog A partir de la version 5.1, la variable
syslog est disponible en standard (mais pas pour Windows bien s&amp;ucirc;r
!). Est-ce un bon choix d&amp;rsquo;utiliser cette variable syslog ? La
r&amp;eacute;ponse va sans doute d&amp;eacute;pendre de votre mani&amp;egrave;re de
surveiller les logs : si vous ne vous int&amp;eacute;ressez
qu&amp;rsquo;&amp;agrave; MySQL, devoir retrouver les &amp;eacute;v&amp;eacute;nements
li&amp;eacute;s &amp;agrave; MySQL parmi tous les autres
&amp;eacute;v&amp;eacute;nements va &amp;ecirc;tre laborieux, mais au contraire, si
MySQL n&amp;rsquo;est qu&amp;rsquo;une application parmi tant d&amp;rsquo;autres, il
vous sera bien agr&amp;eacute;able d&amp;rsquo;avoir un journal d&amp;rsquo;erreurs
dans un format standard. Subtilit&amp;eacute; ou complication
suppl&amp;eacute;mentaire, vous pouvez m&amp;ecirc;me avoir votre journal
d&amp;rsquo;erreur en double, une premi&amp;egrave;re fois via syslog et une
deuxi&amp;egrave;me fois dans le fichier d&amp;rsquo;erreur classique. Comment
faire ? Il vous faut activer en m&amp;ecirc;me temps la variable syslog et
la variable log_error : [mysqld_safe] syslog  [mysqld] log_error =
error.log Quel est l&amp;rsquo;int&amp;eacute;r&amp;ecirc;t ? A vrai dire, je
n&amp;rsquo;en vois pas vraiment &amp;hellip;   Voyons maintenant quelques
bonnes pratiques. La premi&amp;egrave;re question &amp;agrave; vous poser, en
supposant que vous &amp;ecirc;tes sous Linux et que votre version ou votre
distribution vous en donne la possibilit&amp;eacute;, est de savoir si vous
souhaitez utiliser syslog ou pas. Si oui, il vous suffit de positionner
la variable syslog dans la section [mysqld_safe] du fichier my.cnf et la
configuration est termin&amp;eacute;e. Sinon, si vous laissez la variable
&amp;agrave; vide ou si vous mettez un nom de fichier, votre journal
d&amp;rsquo;erreurs va se trouver dans le r&amp;eacute;pertoire de
donn&amp;eacute;es, ce qui n&amp;rsquo;est pas souhaitable. M&amp;ecirc;me
s&amp;rsquo;il existe peu de chances que le journal d&amp;rsquo;erreurs
remplisse tout l&amp;rsquo;espace disque disponible dans le
r&amp;eacute;pertoire de donn&amp;eacute;es (c&amp;rsquo;est plus plausible avec les
logs bins), il est en effet toujours mieux de ne pas m&amp;eacute;langer les
torchons et les serviettes : les donn&amp;eacute;es avec les donn&amp;eacute;es
et les logs avec les logs ! De plus, vous risquez d&amp;rsquo;avoir des
probl&amp;egrave;mes de droit : dans le r&amp;eacute;pertoire de donn&amp;eacute;es,
seul les utilisateurs du groupe mysql ont le droit
d&amp;rsquo;acc&amp;eacute;der &amp;agrave; ce fichier, alors que vous aurez
peut-&amp;ecirc;tre besoin de donner des acc&amp;egrave;s &amp;agrave;
d&amp;rsquo;autres utilisateurs sans pour autant leur laisser un
acc&amp;egrave;s aux donn&amp;eacute;es. Il est donc conseill&amp;eacute; de saisir
un chemin absolu vers un fichier, par exemple : [mysqld] log_error =
/var/log/mysql/error.log Un autre aspect &amp;agrave; prendre en compte est
celui de la rotation. En effet, si vous n&amp;rsquo;y faites pas attention,
la rotation des logs risque de vous faire perdre une grande partie des
informations du journal d&amp;rsquo;erreurs ! Le premier point &amp;agrave;
constater est que la rotation du journal d&amp;rsquo;erreurs ne se fait pas
automatiquement au d&amp;eacute;marrage du serveur ou lorsque la taille du
fichier d&amp;eacute;passe une certaine limite. La seule possibilit&amp;eacute;
consiste &amp;agrave; ex&amp;eacute;cuter la commande FLUSH LOGS (qui affecte
&amp;eacute;galement les autres logs). Quand vous utilisez syslog, par
d&amp;eacute;faut, votre syst&amp;egrave;me fait une rotation tous les jours, et
les logs sont purg&amp;eacute;es apr&amp;egrave;s 7 jours. Sauf si vous prenez
des mesures pour sauvegarder les logs apr&amp;egrave;s leur rotation, vous
avez donc seulement le journal des erreurs des 7 derniers jours &amp;agrave;
votre disposition. Mais quand vous utilisez un journal d&amp;rsquo;erreurs
classique, la situation est beaucoup plus dangereuse ! En effet,
l&amp;rsquo;appel de la commande FLUSH LOGS cr&amp;eacute;&amp;eacute; un nouveau
journal d&amp;rsquo;erreurs et sauvegarde l&amp;rsquo;ancien dans un fichier
avec le suffixe -old. Et si vous aviez d&amp;eacute;j&amp;agrave; un fichier
-old, celui-ci est purement et simplement supprim&amp;eacute; ! Petite
d&amp;eacute;mo : stephane@cilaos:/var/lib/mysql$ ll | grep error -rw-rw----
1 ...     2817 2010-04-16 10:46 error.log -rw-rw---- 1 ...      939
2010-04-16 10:45 error.log-old J&amp;rsquo;ai bien un journal
d&amp;rsquo;erreurs ainsi qu&amp;rsquo;un journal en -old.
J&amp;rsquo;ex&amp;eacute;cute FLUSH LOGS pour voir l&amp;rsquo;effet :
stephane@cilaos:/var/lib/mysql$ mysql -uroot -p -e &amp;quot;FLUSH
LOGS&amp;quot; Enter password: stephane@cilaos:/var/lib/mysql$ ll | grep
error -rw-rw---- 1 ...        0 2010-04-16 10:47 error.log -rw-rw---- 1
...     2817 2010-04-16 10:46 error.log-old Et voil&amp;agrave;, mes
anciennes erreurs sont perdues &amp;agrave; tout jamais&amp;hellip; Conclusion :
mieux vaut sauvegarder r&amp;eacute;guli&amp;egrave;rement son journal
d&amp;rsquo;erreurs car nul n&amp;rsquo;est &amp;agrave; l&amp;rsquo;abri d&amp;rsquo;un
FLUSH LOGS non pr&amp;eacute;vu. Notre exploration du journal
d&amp;rsquo;erreurs est termin&amp;eacute;e, et nous reviendrons bient&amp;ocirc;t
sur un autre journal extr&amp;ecirc;mement important : le journal des
requ&amp;ecirc;tes lentes.</description>
      <pubDate>Fri, 16 Apr 2010 16:16:53 GMT</pubDate>
      <guid isPermaLink="false">http://www.dbnewz.com/?p=546</guid>
      <dc:date>2010-04-16T16:16:53Z</dc:date>
    </item>
    <item>
      <title>Tutorial et jour 1</title>
      <link>http://www.dbnewz.com/?p=543</link>
      <description>2 jours se sont ecoules a la conference et comme d habitude je n ai pas
vu le temps passer. J ai passe le 1er jour a approfondir mes
connaissances sur MySQL Cluster. 7.1 a ete annonce GA aujourd&amp;rsquo;hui.
J ai pu voir beaucoup d amelioration en terme de performance mais
surtout au niveau de l [...]</description>
      <pubDate>Wed, 14 Apr 2010 06:46:05 GMT</pubDate>
      <guid isPermaLink="false">http://www.dbnewz.com/?p=543</guid>
      <dc:date>2010-04-14T06:46:05Z</dc:date>
    </item>
    <item>
      <title>Statistiques d usage de PHP sur Debian</title>
      <link>http://www.nexen.net/actualites/php/19579-statistiques_d_usage_de_php_sur_debian.php</link>
      <description>Le site Industrialisation PHP r&amp;eacute;sume un article publi&amp;eacute; par
la distribution Debian.  Cette distribution a recueilli sous la forme de
statistiques l'utilisation des diff&amp;eacute;rents paquets qui la
composent. L'analyse publi&amp;eacute;e est le r&amp;eacute;sultat d'une
&amp;eacute;tude venant de Debian Popularity Contest. Le point important
montre que la version PHP 4 est presque oubli&amp;eacute;e pour
privil&amp;eacute;gier les versions 5.1 et 5.2. Cependant l'article montre
aussi :   Le SAPI le plus utilis&amp;eacute; est mod_apache MySQL domine
largement les autres connecteurs PEAR est peu utilis&amp;eacute; Les
extensions PECL semblent peu utilis&amp;eacute;es &amp;nbsp;Etude comp&amp;egrave;te
Debian Popularity Contest (0 visite)&amp;nbsp;Statistiques d usage de PHP
sur Debian (0 visite)</description>
      <pubDate>Tue, 06 Apr 2010 04:19:39 GMT</pubDate>
      <guid isPermaLink="false">http://www.nexen.net/actualites/php/19579-statistiques_d_usage_de_php_sur_debian.php</guid>
      <dc:date>2010-04-06T04:19:39Z</dc:date>
    </item>
    <item>
      <title>Un trigger fait-il partie d’une transaction ?</title>
      <link>http://www.nexen.net/actualites/php/19577-un_trigger_fait-il_parti_dune_transaction_.php</link>
      <description>Le Trigger, &amp;eacute;galement appel&amp;eacute; D&amp;eacute;clencheur de
T&amp;acirc;ches, est beaucoup utilis&amp;eacute; dans les outils PHP (CMS,
Framework...). Cependant lorsque vous devez manipuler les bases de
donn&amp;eacute;es ou effectuer une transaction r&amp;eacute;guli&amp;egrave;re,
cela peut-&amp;ecirc;tre utile d'avoir sous la main la possibilit&amp;eacute;
d'effectuer un Trigger. C&amp;eacute;dric PEINTRE d&amp;eacute;montre
(m&amp;ecirc;me si la r&amp;eacute;ponse est logique) qu'il n'est pas
&amp;eacute;vident de r&amp;eacute;ussir du premier coup cette op&amp;eacute;ration.
Dans son exemple, il montre diff&amp;eacute;rentes op&amp;eacute;rations  et
tests effectu&amp;eacute;s avec une base de donn&amp;eacute;es Oracle, MS SQL
serveur, MySQL. Et bien entendu il donne la r&amp;eacute;ponse &amp;agrave;
cette question. Un trigger fait-il parti d&amp;rsquo;une transaction ?</description>
      <pubDate>Mon, 05 Apr 2010 03:59:28 GMT</pubDate>
      <guid isPermaLink="false">http://www.nexen.net/actualites/php/19577-un_trigger_fait-il_parti_dune_transaction_.php</guid>
      <dc:date>2010-04-05T03:59:28Z</dc:date>
    </item>
    <item>
      <title>Un trigger fait-il parti d’une transaction ?</title>
      <link>http://www.nexen.net/content/view/19577/165/</link>
      <description>Le Trigger, ou aussi appel&amp;eacute; D&amp;eacute;clencheur de T&amp;acirc;ches,
est beaucoup utilis&amp;eacute; dans les outils PHP (CMS, Framework...).
Cependant lorsque vous devez manipuler les bases de donn&amp;eacute;es ou
effectuer une transaction r&amp;eacute;guli&amp;egrave;re, cela peut-&amp;ecirc;tre
utile d'avoir sous la main la possibilit&amp;eacute; d'effectuer un Trigger.
C&amp;eacute;dric PEINTRE d&amp;eacute;montre (m&amp;ecirc;me si la r&amp;eacute;ponse
est logique) qu'il n'est pas &amp;eacute;vident de r&amp;eacute;ussir du premier
coup cette op&amp;eacute;ration. Dans son exemple, il montre
diff&amp;eacute;rentes op&amp;eacute;rations  et tests effectu&amp;eacute;es avec
une base de donn&amp;eacute;e Oracle, MS SQL serveur, MySQL. Et bien entendu
il donne la r&amp;eacute;ponse &amp;agrave; cette question.</description>
      <pubDate>Mon, 05 Apr 2010 03:59:28 GMT</pubDate>
      <guid isPermaLink="false">http://www.nexen.net/content/view/19577/165/</guid>
      <dc:date>2010-04-05T03:59:28Z</dc:date>
    </item>
    <item>
      <title>Web2project</title>
      <link>http://www.nexen.net/actualites/php/19576-web2project.php</link>
      <description>web2Project est un PMS (project management System) en Open source et
bas&amp;eacute; pour un environnement AMP (Apache/PHP/MySQL). Il s'agit
d'une application permettant de g&amp;eacute;rer facilement vos projets. De
nombreuses caract&amp;eacute;ristiques sont pr&amp;eacute;sentes :
Infrastructure s&amp;eacute;curis&amp;eacute;e sur le web Gestion de plusieurs
projets en simultan&amp;eacute;e Gestion d'ajout et de suppression de
modules suivant vos besoins Centralise le projet de communication
Pr&amp;eacute;sence d'un diagramme de Gantt pour g&amp;eacute;rer vos projets
Pr&amp;eacute;sence d'un calendrier indiquant les t&amp;acirc;ches et
&amp;eacute;v&amp;egrave;nements            &amp;lt;!--   @page { margin: 2cm }   P
{ margin-bottom: 0.21cm }  --&amp;gt;    Un projet tr&amp;egrave;s
int&amp;eacute;ressant pour g&amp;eacute;rer 1 ou plusieurs projets &amp;nbsp;Site
officiel Web2project (0 visite)&amp;nbsp;Capture ecran Web2project (0
visite)&amp;nbsp;demo web2project (0 visite)</description>
      <pubDate>Mon, 05 Apr 2010 01:01:43 GMT</pubDate>
      <guid isPermaLink="false">http://www.nexen.net/actualites/php/19576-web2project.php</guid>
      <dc:date>2010-04-05T01:01:43Z</dc:date>
    </item>
    <item>
      <title>Piwigo 2</title>
      <link>http://www.nexen.net/actualites/php/19569-piwigo_2.php</link>
      <description>Piwigo est une application PHP/MySQL sous licence GPL. Il permet de
cr&amp;eacute;er facilement une galerie d'images. Cette API se distingue des
autres, c'est que Piwigo est :    La pr&amp;eacute;sence du moteur de
template : Smarty Distinction du template entre la partie publique et la
partie administration Utilisation 100 % de l'UTF-8 Obligation
d'&amp;ecirc;tre PHP 5 Obligation d'&amp;ecirc;tre MySQL 5 Une fa&amp;ccedil;on
diff&amp;eacute;rente ajouter des photos Il supporte de nombreuses langues
Il permet d'uploader sans passer par le FTP Plus de 80 plugins etc  Une
version d&amp;eacute;mo est disponible sur le site pour se rendre compte du
r&amp;eacute;sultat et des possibilit&amp;eacute;s de l'API&amp;nbsp;Site officiel
Piwigo (0 visite)&amp;nbsp;Captures &amp;eacute;crans Piwigo (0
visite)&amp;nbsp;Demo en ligne Piwigo (0 visite)</description>
      <pubDate>Wed, 31 Mar 2010 22:53:18 GMT</pubDate>
      <guid isPermaLink="false">http://www.nexen.net/actualites/php/19569-piwigo_2.php</guid>
      <dc:date>2010-03-31T22:53:18Z</dc:date>
    </item>
    <item>
      <title>Un trigger fait-il parti d’une transaction ?</title>
      <link>http://blog.capdata.fr/?p=430</link>
      <description>C&amp;rsquo;est une question que l&amp;rsquo;on peut se poser, m&amp;ecirc;me si la
r&amp;eacute;ponse parait &amp;eacute;vidente, nous ne sommes pas &amp;agrave;
l&amp;rsquo;abri d&amp;rsquo;&amp;eacute;ventuelles surprises. Verdict &amp;agrave; la
fin de ce post ! C&amp;rsquo;est d&amp;rsquo;ailleurs une question que
l&amp;rsquo;on s&amp;rsquo;est pos&amp;eacute;e, autour de la machine caf&amp;eacute;,
et qui du coup a fait l&amp;rsquo;objet d&amp;rsquo;un petit exercice avec
Oracle, SQL Server, MySQL et Sybase&amp;hellip; Bon, je vous rassure, nous
ne faisons pas que parler bases de donn&amp;eacute;es pendant les pauses
caf&amp;eacute; mais &amp;ccedil;a arrive, parfois. Place aux tests : Un trigger
fait-il parti d&amp;rsquo;une transaction ? Test Oracle : SQL &amp;gt; create
table t2 ( cnt int );  SQL &amp;gt; insert into t2 values ( 0 );  SQL &amp;gt;
commit;  SQL &amp;gt; create table t ( x int check ( x&amp;gt;0 ) ); SQL &amp;gt;
create trigger t_trigger  before insert or delete on t for each row
begin  if ( inserting ) then  update t2 set cnt = cnt +1;  else  update
t2 set cnt = cnt -1;  end if;  dbms_output.put_line( 'I fired and
updated ' ||sql%rowcount || ' rows'  );  end;  / R&amp;eacute;sultat : OUI
SQL &amp;gt; set serveroutput on  SQL &amp;gt; insert into t values (1);  I
fired and updated 1 rows  1 row created.  SQL &amp;gt; insert into t
values(-1);  I fired and updated 1 rows  insert into t values(-1)  *
ERROR at line 1:  ORA-02290: check constraint (SYS_C009597) violated
SQL &amp;gt; select * from t2;  CNT  ----------  1 Test MS SQL Server : use
tempdb  go create table t2 ( cnt int )  insert into  t2 values ( 0 )
select * from t2 create table t ( x int check  ( x&amp;gt;0 ) ) drop trigger
t_trigger  create trigger t_trigger  on t for insert  as  begin  update
t2 set cnt = cnt +1  print( 'I fired and updated ' + CAST(@@ROWCOUNT AS
NVARCHAR(8))&amp;nbsp; + '  rows' )  end R&amp;eacute;sultat : OUI  begin tran
insert into t values(2);  insert into t values(-1); (1 row(s) affected)
I fired and updated  1 rows (1 row(s) affected)  Msg 547, Level 16,
State  0, Line 4  The INSERT statement conflicted with the CHECK
constraint  &amp;quot;CK__t__x__7A5DD7C8&amp;quot;. The conflict occurred in
database &amp;quot;tempdb&amp;quot;, table  &amp;quot;dbo.t&amp;quot;, column 'x'.  The
statement has been terminated. Test MySQL (InnoDB) : Au passage, cela
m&amp;rsquo;a permis de d&amp;eacute;couvrir que les contraintes CHECK
n&amp;rsquo;&amp;eacute;taient  pas prises en charge par MySQL : The CHECK
clause is  parsed but ignored by all storage engines mysql&amp;gt; set
autocommit=off;  Query OK, 0 rows affected (0.02  sec) mysql&amp;gt; use
test  Database changed  mysql&amp;gt; create  table t2 ( cnt int )
engine=innodb;  Query OK, 0 rows affected (0.11  sec) mysql&amp;gt; insert
into t2 values ( 0 );  Query OK, 1 row  affected (0.02 sec) mysql&amp;gt;
commit;  Query OK, 0 rows  affected (0.11 sec) mysql&amp;gt; create table t
( x int primary key)  engine=innodb;  Query OK, 0 rows affected (0.09
sec) mysql&amp;gt;  delimiter // mysql&amp;gt; create trigger t_trigger
-&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
before insert on t for each row
-&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
begin
-&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
update t2 set cnt = cnt +1;
-&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
end;  -&amp;gt; //  Query OK, 0 rows affected (0.11  sec) mysql&amp;gt;
delimiter ; R&amp;eacute;sultat : OUI  mysql&amp;gt; insert into t values (1);
Query OK, 1 row affected  (0.02 sec) mysql&amp;gt; insert into t values (1);
ERROR 1062  (23000): Duplicate entry '1' for key 'PRIMARY' mysql&amp;gt;
select *  from t2;  +------+  | cnt&amp;nbsp; |  +------+
|&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 |  +------+  1 row in set (0.00 sec) Test Sybase :
1&amp;gt; create trigger T1_ins_tr on T1 for insert 2&amp;gt; as  3&amp;gt; begin
4&amp;gt; select 1/0  5&amp;gt; end  6&amp;gt; go R&amp;eacute;sultat : OUI  5&amp;gt; begin
tran  6&amp;gt; go  1&amp;gt; insert into T1 values ('kjhkjhkjh')  2&amp;gt; go  Msg
3607, Level 16, State 0:  Server 'ASE1502', Procedure 'T1_ins_tr', Line
4:  Divide by zero occurred. -----------  1&amp;gt; select @@trancount
2&amp;gt; go -----------  0 (1 row affected) R&amp;eacute;sultat des tests : LE
VERDICT ! Oui, un trigger fait bien parti d&amp;rsquo;une transaction, quel
que soit le SGBD, enfin, au moins sur Oracle, SQL Serveur, MySQL et
Sybase. Je vous laisse faire vos tests sur DB2, Postgre et
consorts&amp;hellip; N&amp;rsquo;h&amp;eacute;sitez pas &amp;agrave; nous faire un
retour dans les commentaires. A+ C&amp;eacute;dricAutres articles &amp;agrave;
d&amp;eacute;couvrir sur le blog :  R&amp;egrave;gles d&amp;rsquo;installation de
base (&amp;eacute;pisode 1) (David BAFFALEUF) [SQL Server] Principes
d&amp;rsquo;une sauvegarde &amp;agrave; chaud (David BAFFALEUF) [SQL Server]
Retrouver une transaction en &amp;eacute;chec (David BAFFALEUF) [SQL Server]
Modifier la Collation d&amp;rsquo;une base SQL 2005 (Louis HOCHBERG) [SQL Server]</description>
      <pubDate>Tue, 30 Mar 2010 13:31:54 GMT</pubDate>
      <guid isPermaLink="false">http://blog.capdata.fr/?p=430</guid>
      <dc:date>2010-03-30T13:31:54Z</dc:date>
    </item>
  </channel>
</rss>

