Les centiles sont une des 99 valeurs qui divise les données
triées en 100 parts égales. Le premier centile (abusivement
appelé percentile, de la version anglaise), identifie les valeurs
le plus basses du groupe. On connaît souvent la médiane, qui
découpe le groupe en 2 part de même taille : le concept est
similaire.
Roland Bouman publie un article où il arrive à calculer les
percentiles sans jointures, sous-requêtes ni variables
utilisateurs : il se base sur GROUP_CONCAT, et SUBSTRING pour
ordonner le groupe, et en extraire des portions intéressantes. Le
tout se fait en une seule passe, et quelques manipulations de
chaînes.
C'est un bon truc, mais je crois que je préfèrerai les variables
utilisateurs, pour éviter de concaténer des chaînes trop grosses
dans group_concat.
« Précédent 10 Nouvelles entrées | Suivant 10 Entrées plus anciennes »
Voici les 5 dernières vidéos PHP et MySQL.
-
- PHP Streams : lucky dip (0 visite)
- Installer MAMP (0 visite)
- Symfony 1.1 Fabien Potencier (0
visite)
- Php 5.3 And Php 6 A Look Ahead DPC 2008,
Amsterdam (0 visite)
- Web Browsers And Other Mistakes (0
visite)
- MySQL Tuning (0 visite)
Ces vidéos sont publiés …
Alex Tomic a testé le proxy MySQL en charge sur EC2 : un proxy et 4 serveurs MySQL. Les requêtes sont réparties sur 4 serveurs MySQL, et distribuées (entrée et sortie) via le proxy. Les résultats montrent que le point critique est entre 4 et 8 threads concurrents : en dessous de ce niveau d'activité, le surcoût de MySQL proxy rend l'architecture plus lente. Une fois ce cap passé, le gain devient plus intéressant, et l'archi proxy est capable de monter en puissance jusqu'à 4 fois la charge nominale de chaque serveur.
- mysql proxy 0.6.1 performance tests (0 visite)
- mysql proxy project (0 visite)
Sheeri Kabral passe en revue MONyog, un moniteur MySQL dédié. Il
s'installe en quelques minutes, surveille les requêtes SQL
(tentatives de piratage, qualité des requêtes SQL), et produit
des graphiques de performances. MONYog se distingue des autres
outils de surveillance, comme MySQL entreprise, par l'absence
d'agent local : pas besoin d'installation particulière sur le
serveur de destination pour le suivre.
MONyog coûte 129 $ US, avec 1 an de support.
- Reviewing MONyog (0 visite)
- MONyog (0 visite)
- MonYog screenshot (0 visite)
Les tables de décisions rassemblent la logique métier dans un
tableau, simple à lire et à comprendre. "Les tables de décisions,
pour moi [Jonathan], prennent tout leur sens dans le fait que
leur logique métier est aisée à comprendre, et peut être
facilement vérifiée."
Jonathan suit alors son idée de stocker de telles tables en base
de données, avec la possibilité de les traduire en code (PHP ou
autre) facilement. Cela redonne la main aux utilisateurs pour
établir leurs processus de fonctionnement. L'article ne va pas
aussi loin, mais c'est déjà un bon début.
- Decisions in Your Tables (0 visite)
"Lorsque vous utilisez MySQL en mode batch, vous aurez souvent
besoin d'utiliser les commandes en ligne UNIX en collaboration
avec des requêtes SQL. Ce script de démonstration vous montre
comment faire cela."
Amit K. Saha présente ici un truc pratique pour tout faire dans
un script Shell, sans passer par un langage de programmation
complémentaire.
- Mixing SQL and shell commands in MySQL (0 visite)
Arjen Lentz propose la requête suivante pour détecter les index
qui ne servent à rien dans MySQL :
SELECT s.table_name,
concat(s.index_name,'(',group_concat(s.column_name order by s.seq_in_index),')') as idx,
GROUP_CONCAT(s.cardinality ORDER BY s.seq_in_index) AS card,
t.table_rows
FROM information_schema.tables t
JOIN information_schema.statistics s USING (table_schema,table_name)
WHERE t.table_schema='dbname'
AND t.table_rows > 1000
AND s.non_unique
GROUP BY s.table_name,s.index_name
HAVING (card + 0) < (t.table_rows / 3);
La requête utilise la base information_schema (MySQL 5.0 et
supérieur), pour repérer les index dont la cardinalité est
inférieure à 30% : c'est le niveau à partir duquel MySQL va
décider que l'index est utile, et en dessous de ce niveau, MySQL
décidera d'ignorer l'index et de tout …
PHP et MySQL ne font l'objet d'aucune alerte de sécurité dans
leurs versions courantes :
PHP 5.2.6 et 4.4.8; MySQL 5.0.51 (communauté) , 5.1.25 et
6.0.5.
Les mises à jour sont recommandées vers ces versions.
5 alertes de sécurité ont été émises cette semaine, concernant
des applications suivantes :
Drupal, Gallery, Joomla, phpMyAdmin et vBulletin
-
-
Drupal TrailScout Module Cross-Site Scripting and SQL
I...
http://secunia.com/advisories/30764/ (0 visite)
Site : http://drupal.org/ (0 visite)
-
Gallery 2.2.4 and Prior Versions Multiple
Vulnerabilities
…
MySQL 6.0.5, avec la dernière version de Falcon, est disponible
au téléchargement. MySQL 6.0 inclut essentiellement le nouveau
moteur Falcon, développé pour MySQL par Jim Starkey.
MySQL 6.0.4 apporte 2 correctifs de sécurité, portant sur les
tables MyISAM et la version Microsoft. Un total de 400 bugs ont
été corrigés dans cette nouvelle version.
Changements incompatibles :
-
- Les tables de logs sont maintenant de type FILE, et non plus
TABLE.
- La bibliothèque de conversion chaîne <-> nombre a été
changée
- MySQL Cluster est doit être téléchargé séparément
- NDB_LE_MemoryUsage.page_size_kb est renommé
page_size_bytes
- Une colonne ROUTINE_TYPE a été ajouté dans
information_schema.PARAMETER
Corrections :
-
- Sécurité : …
Déjà trois semaines d’écoulées depuis que certains d’entre vous, les “héros”, ont posé leurs questions (oui il est possible de devenir un héros rien qu’en lisant dbnewz ! Les véritables héros sont d’ailleurs abonnés au tout nouveau flux feedburner )
Trois semaines d’attente, cela mérite un billet digne de ce nom, c’est parti.
Indexer, pourquoi ?
L’indexation peut avoir plusieurs buts :
- Accéder à ses données plus rapidement, les index sont en effet
l’outil le plus puissant pour accélérer les temps
d’exécution de vos requêtes jusqu’à parfois plusieurs
centaines de % !
- Définir le degré d’unicité d’une colonne donnée : chaque champ
doit-il …
« Précédent 10 Nouvelles entrées | Suivant 10 Entrées plus anciennes »