Partition mysql

24 réponses
AuteurMessage

krucial |
Administrateur

Photo de krucial

Inscrit le : 09/03/2005

# Le 20/11/2014 à 12:06

Salut

Certains d'entres vous ont-ils deja utilisé les partitions de table mysql ?

Si oui, des conseils a me donner ? Ca marche bien ? Pas de risque ?

JC - Mes sitesOuvrir dans une nouvelle fenetre | Affiliation devis travauxOuvrir dans une nouvelle fenetre | Cotes voitures anciennesOuvrir dans une nouvelle fenetre

francois10 | Francois
Membre

 

Inscrit le : 14/05/2006

# Le 20/11/2014 à 12:10

On utilise beaucoup (trop peut-être ?). Olivier sera surement + précis que moi mais j'ai l'impression qu'on a bcp gagné en terme de perf au niveau lecture et écriture. Faut juste que la partition soit faite de façon intelligente et que les query tapes pas plusieurs partitions.

allogarage | Nicolas
Modérateur

Photo de allogarage

Inscrit le : 14/10/2008

# Le 20/11/2014 à 13:11

+1 avec francois, cela peut être très intéressant mais il faut bien lister toutes les requêtes et réfléchir au partitionnement pour pas se tromper.

Guide comparatif des garages automobilesOuvrir dans une nouvelle fenetre | Guide comparatif des garages motoOuvrir dans une nouvelle fenetre | Annuaire auto motoOuvrir dans une nouvelle fenetre

krucial | Jean Christophe
Administrateur

Photo de krucial

Inscrit le : 09/03/2005

# Le 20/11/2014 à 15:24

Si une query tape dans plusieurs partitions, ca pose un vrai probleme de perf ?

Faut que je fasse des tests.

JC - Mes sitesOuvrir dans une nouvelle fenetre | Affiliation devis travauxOuvrir dans une nouvelle fenetre | Cotes voitures anciennesOuvrir dans une nouvelle fenetre

krucial | Jean Christophe
Administrateur

Photo de krucial

Inscrit le : 09/03/2005

# Le 20/11/2014 à 15:29

Dans cet exemple, le mec tape dans toutes les partitions et ca a l'air de carburer non ?

https://www.dropbox.com/s/8igbbqejmvc67w0/screensh...Ouvrir dans une nouvelle fenetre

JC - Mes sitesOuvrir dans une nouvelle fenetre | Affiliation devis travauxOuvrir dans une nouvelle fenetre | Cotes voitures anciennesOuvrir dans une nouvelle fenetre

Bool | Olivier
Modérateur

Photo de Bool

Inscrit le : 09/05/2005

# Le 20/11/2014 à 15:59

kru : t'es sûr qu'il n'a pas splitté par année ?

daevel : infogérance et conseilOuvrir dans une nouvelle fenetre || moiOuvrir dans une nouvelle fenetre

tonguide | Jeremy
Modérateur

 

Inscrit le : 09/05/2005

# Le 20/11/2014 à 16:15

Comme il est indiqué dans l'article que tu lis (je suppose http://krierjon.developpez.com/mysql/partitionneme...Ouvrir dans une nouvelle fenetre ) ça doit dépendre du nombre de partition qui sont appelés, si c'est plus de X% ça ne doit pas valoir la peine, si c'est moins, c'est tout bon (si les perfs sont pourris dès qu'on appelle 2 partitions, ça n'aurait pas d'intérêt).

Je ne connaissais pas non plus, mais ça semble plutôt pratique cette histoire, il va falloir que je test.

Bool | Olivier
Modérateur

Photo de Bool

Inscrit le : 09/05/2005

# Le 20/11/2014 à 16:21

C'est pratique oui, ça permet deux choses :
* réduction du temps d'insert/update/delete/select, en travaillant sur des indexes plus petits
* réduction du besoin en RAM d'InnoDB (si une partie de la table peut être complètement isolée)

Et je n'ai pas testé, mais j'imagine que d'un point de vue verrous ça aide également.

Par contre c'est sûr, les requêtes qui se tapent toute la table, il n'aime pas.

daevel : infogérance et conseilOuvrir dans une nouvelle fenetre || moiOuvrir dans une nouvelle fenetre

krucial | Jean Christophe
Administrateur

Photo de krucial

Inscrit le : 09/03/2005

# Le 20/11/2014 à 18:41

Bool a dit :
kru : t'es sûr qu'il n'a pas splitté par année ?


J'avais pas fait gaffe au where...

Je vais faire des tests. C'est pour améliorer mes recherches, si tu vois ce que je veux dire

JC - Mes sitesOuvrir dans une nouvelle fenetre | Affiliation devis travauxOuvrir dans une nouvelle fenetre | Cotes voitures anciennesOuvrir dans une nouvelle fenetre

Bool | Olivier
Modérateur

Photo de Bool

Inscrit le : 09/05/2005

# Le 20/11/2014 à 19:14

Pour les recherches, regarde du coté de SphinxSearch, ElasticSearch ou similaires. C'est un vrai bonheur... tant que c'est synchronisé

daevel : infogérance et conseilOuvrir dans une nouvelle fenetre || moiOuvrir dans une nouvelle fenetre

Bool | Olivier
Modérateur

Photo de Bool

Inscrit le : 09/05/2005

# Le 20/11/2014 à 19:28

Pour donner un exemple :

MySQL :

select count(*) from concours where remarques like '%playstation%';
...
1 row in set (0.29 sec)


Sphinx :
select count(*) from concoursAdmin where match('playstation');
...
1 row in set (0.02 sec)


Sans cache de requête, et en plus ici MySQL ne recherche que dans un seul champ, tandis que Sphinx recherche dans tous les champs que j'ai configuré.
Bref, pour de la recherche, autant confier ça à des outils dédiés. Y a plein d'options, plein de possibilités, plein de nouvelles emmerdes

daevel : infogérance et conseilOuvrir dans une nouvelle fenetre || moiOuvrir dans une nouvelle fenetre

tonguide | Jeremy
Modérateur

 

Inscrit le : 09/05/2005

# Le 20/11/2014 à 19:37

Au niveau synchro, ça marche comment sphinx ? (pour le coup, présenté comme tu le présentes, ça semble plus agréable à utiliser que ES)
C'est un peu le truc chiant avec ElasticSearch.

Bool | Olivier
Modérateur

Photo de Bool

Inscrit le : 09/05/2005

# Le 20/11/2014 à 19:51

Au niveau synchronisation Sphinx, y a deux solutions :
1) soit tu lui donnes une liste de requêtes SQL pour qu'il récupère lui même les données, et tu lances l'opération régulièrement (c'est long, désynchronisé, et j'ai pas mal de merdes sur ToutGagner avec le «merge» final des indexes).
2) soit tu pousses toi même les données directement dans le moteur, sachant qu'il propose une interface fortement semblable à MySQL, c'est à dire tu fais un simple INSERT INTO monIndex values (A, B, C, D)

J'ai commencé par la première qui me semblait plus simple, mais maintenant sur les nouveaux devs on n'utilise que la deuxième qui se révèle être plus pratique (et plus stable).

daevel : infogérance et conseilOuvrir dans une nouvelle fenetre || moiOuvrir dans une nouvelle fenetre

tonguide | Jeremy
Modérateur

 

Inscrit le : 09/05/2005

# Le 20/11/2014 à 20:01

Ok, oui je pensais utiliser cette solution, faut juste être rigoureux sur les INSERT/UPDATE (pour le coup, je suis plus parti sur ES).

C'est aussi souple que ES sur les recherches ? Recherche flou ? Facette/Aggregation etc. ?

(désolé de squatter ton sujet krucial ;))

Bool | Olivier
Modérateur

Photo de Bool

Inscrit le : 09/05/2005

# Le 20/11/2014 à 20:41

Je n'ai jamais utilisé ES, juste vu à quoi ça ressemblait dans les grandes lignes, donc difficile à comparer.

Sphinx me semble souple, mais je n'ai pas vu de notion de «flou» ou de «facette», qu'est-ce ?

daevel : infogérance et conseilOuvrir dans une nouvelle fenetre || moiOuvrir dans une nouvelle fenetre

krucial | Jean Christophe
Administrateur

Photo de krucial

Inscrit le : 09/03/2005

# Le 20/11/2014 à 22:00

En gros, sphinx est un truc a part de ta bdd. Un soft a part entiere donc. C'est simpe a utiliser ou c'est encore un truc imbuvable de developpeur ?

JC - Mes sitesOuvrir dans une nouvelle fenetre | Affiliation devis travauxOuvrir dans une nouvelle fenetre | Cotes voitures anciennesOuvrir dans une nouvelle fenetre

tonguide | Jeremy
Modérateur

 

Inscrit le : 09/05/2005

# Le 21/11/2014 à 00:06

Une recherche flou, c'est le fait de taper "mahin" et de trouver "machin" par exemple, ça accepte des fautes d'orthographes, des oublies de lettres etc. Et ça marche plutôt très bien, enfin en tout cas, ça répond très bien à ce que je cherchais (il y a carrément en phonétique aussi, mais j'ai pas testé).

Les facettes/aggregations, ça permet en gros de calculer le nombre d'élément par filtre selon une recherche. C'est par exemple très adapté à Oogolo, tu fais une recherche sur un séjour, ça sait te dire combien de résultat tu auras si tu ajoutes tel ou tel filtre. C'est également pratique à des fins de statistiques. Mais comme je n'ai pas encore eu le temps de tester cette partie, je ne peux pas te dire si c'est efficace ou pas : http://www.elasticsearch.org/guide/en/elasticsearc...Ouvrir dans une nouvelle fenetre ça sera plus clair

ElasticSearch, ce n'est pas dure, mais la doc n'est pas très intuitif, donc j'ai mis quand même 1 bonne grosse journée à comprendre le concept (pourtant pas très compliqué, mais il y a assez peu de ressources). Le plus compliqué étant de savoir indexé proprement son contenu selon les besoins qu'on a (si c'est juste une recherche dans un texte, c'est par contre très simple).

Par contre le fait que tout se passe via une API RESTful, je trouve ça sympa. Je peux rester tranquillement sur PHP pour tout faire. (tu as un exemple très basique ici : http://codrspace.com/dpakrk/elasticsearch-using-ph...Ouvrir dans une nouvelle fenetre je crois, quasi fonctionnelle dès le début)

Bool | Olivier
Modérateur

Photo de Bool

Inscrit le : 09/05/2005

# Le 21/11/2014 à 01:42

Du coup non, Sphinx ne gère pas de recherche floue à ma connaissance. Il a des choses comme le «stemming» qui essaye de gérer les accords & conjugaisons des mots (genre cheval = chevaux), mais c'est à peu près tout.

Quant aux facettes, faudrait que je creuse la doc... pas la moindre idée non plus.

daevel : infogérance et conseilOuvrir dans une nouvelle fenetre || moiOuvrir dans une nouvelle fenetre

krucial | Jean Christophe
Administrateur

Photo de krucial

Inscrit le : 09/03/2005

# Le 21/11/2014 à 09:13

A propos de sphynx et ES :

Est ce que c'est souple d'utilisation ? Comment gerent-ils la pertinence des resultats ?

JC - Mes sitesOuvrir dans une nouvelle fenetre | Affiliation devis travauxOuvrir dans une nouvelle fenetre | Cotes voitures anciennesOuvrir dans une nouvelle fenetre

erwinol | Erwin
Membre

Photo de erwinol

Inscrit le : 09/05/2005

# Le 21/11/2014 à 09:20

C'est fou quand même tout ce qui existe aujourd'hui. Il y a 10 ans les scripts ressemblaient à rien (pas de POO en PHP à l'époque et MVC n'était qu'un concept), il n'y avait pas d'outils spécifiques et tout était si simple (mais pas aussi fonctionnel qu'aujourd'hui). J'ai encore un vieux site qui tourne sur "MyPhpAnnuaire" ou un truc du genre, enfin le script que tout le monde utilisait quoi ... ça fait peur quand je vois le code, tout est mélangé (HTML, PHP, CSS et JS dans le même fichier). La plupart ne savaient même pas ce qu'était un index sql à l'époque ^^

Perso j'ai découvert ElasticSearch il y a quelques semaines à peine mais j'ai pas eu le courage de le mettre en place. Je suis old school, ça m’intéresse beaucoup mais ça me fait peur. J'ai l'impression d'être dépassé et j'ai pas le temps de me documenter
J'envie les jeunes qui maîtrisent tout ça mais je me demande comment fait un mec qui rentre dedans aujourd'hui face à cette masse d'information. Il y a 15 ans on allait sur Phpdebutant et EditeurJavascript (hein JC ;)) et c'était amplement suffisant ^^

(Message édité le 21-11-2014 à 09h25 par erwinol)

Répondre

Vous ne pouvez pas participer au forum, car votre inscription n'a pas été validée. Pour vous faire valider en tant que Membre, cliquez ici.

© MHN - Tous droits réservés | CNIL N°844440 | 23/11/2024 9:51:21 | Généré en 10.6ms | Contacts | Mentions légales |