xmlBDD : Emulation de SGBD / sauvegarde de fichiers XML

ViPHP
ViPHP | 4036 Messages

24 févr. 2011, 12:56

En gros, tu fais un semblant de driver ODBC pour fichiers XML..

De plus, XML offre l'avantage d'être libre de forme, alors que le langage SQL est prévu pour des DB relationnelles ou la forme reste stricte.

Et pour un minimum de performance il faudra des index et une gestion de la mémoire, et je vois mal comment traduire ça dans des fichiers lourds genre XML.

Pourquoi donc vouloir émuler SQL alors que du NoSQL (ie. une interface DB non lié à SQL) serait plus à même de profiter de la flexibilité d'Xml, ou pourquoi de pas mettre créer son propre mécanisme de stockage optimisé (avec du binaire, des B-tree, du qui tâche, bien burné) et une véritable gestion de la mémoire (bref, un DB SQL en php natif) ?

Enfin, juste comme ça, j'aime les défis démesurés (je viens de mettre en place un système de log d'évènements pour cms ou tout est stocké en binaire - avec un alphabet réduit de 32 caractères, qui me permet de stocker 3 caractères la ou ascii en mettrait 2 - inutile, contreproductif, mais très amusant).
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Avatar du membre
ViPHP
xTG
ViPHP | 7330 Messages

24 févr. 2011, 13:30

Beh justement, c'est parce que c'est inutile et démesuré que je me suis lancé dedans. 8-)
Pour les index j'ai prévu quelques trucs avec les clés primaires dans un premier temps mais pas encore implémenté.

Avatar du membre
ViPHP
ViPHP | 3288 Messages

24 févr. 2011, 16:01

Y'a un soucis majeur avec le choix de xml c'est que tu va être vite limité en taille de table, un fichier de quelques megas explosera assez facilement la limite de ram utilisable par ton php, normalement avec le xml on utilise SAX plutôt pour éviter de bouffer la ram, sauf que pour ce que tu veux faire ça poseras des problèmes de perfs majeurs, j'ai pas regardé le détail de ton code, mais il va falloir sans doute utiliser le filesystem un peu plus, genre en séparant les tables en plusieurs fichier xml: un par enregistrement: non, un par enregistrement en fonction d'un id genre un fichier xml pour tous les enregistrements ont un id compris entre 0 et 9, 10 et 19 etc ca pourrait peut-être le faire. ceci dit en toute honnêteté le principe même de base de données bien qu'intéressant est loin d'être bien implémenté par les acteurs principaux, oracle, db2, sql server ou mysql...
Fait du php depuis que ca existe ou presque :)

Avatar du membre
ViPHP
xTG
ViPHP | 7330 Messages

25 févr. 2011, 00:17

Oui j'y avais pensé à ça, mais bon comme je l'ai dit je recherche pas vraiment à faire quelque chose qui tournera.
On pourrait presque dire que mon projet est voué à l'échec. :P

Car il est certains qu'une table MySQL de 100Mio va surement faire 4-5x plus dans un fichier XML.