6. MongoDB – Infos
MongoDB ("humongous")
10gen
2007 – start project
2009 – open source
C++
Licence : GNU AGPL v3.0 (drivers: Apache licence)
Easy, scalability and Big DATA
Geolocalisation
14. Installation
$ mongo
MongoDB shell version 2.4.9
connection to : test
> show databases
default 0.203125GB
test
0.203125GB
local
0.078125GB
reseau 0.203125GB
> use reseau
switched to db reseau
> show collections
network
system.indexes
traffic
> db.traffic.count()
8
27. Package components
●
mongod : primary daemon process for the MongoDB system
●
mongos : routing service for MongoDB shard
●
mongo : interactive JavaScript shell interface
●
mongodump : creating a binary export
●
mongorestore : writes data from a binary database dump
●
●
mongostat : provides a quick overview of the status
similar vmstat
mongoperf : check disk I/O performance independently
of MongoDB
Qu'est-ce que le no-sql ?
Tout ce qui n'est pas SQL
Le no-sql a toujours existé
Clé-valeur
Orienté columns
Orienté document
Pas de transaction
Terminologie :
Table = Collection,
Ligne = Document,
Index = Index
Collections de collections
Mongo: ACID ? ~Atomic (update)~, cohérent, isolation, durable
Pas de schéma
Donnée hétérogènes (éviter M coll)
Atomicité par document
Terminologie :
Jointure = Données embarquées
Obligatoire
Clé 12 bits
4 – timestamp
3 – id machine
2 – id process
3 – compteur
Non brut visible en hexa 24 caractères
Donne une idée de l'implémentation de mongo dans PHP
Pas besoin de createdAt avec l'id
Upsert : insert if unexists
Multiple : all for request
J : false : force sync with disk, else journal
Groupe de process mongo maintiens les mêmes données (master/slave)
Process stockage de donnée entre plusieurs machine.
Si une machine ne tiens pas la charge (I/O)
Haute-disponibilité avec la réplication
Qu'est-ce que le no-sql ?
Tout ce qui n'est pas SQL
Le no-sql a toujours existé
Compatible : Mac, windows et Linux
- ne pas l'utiliser juste pour le plaisir
- pas adapté aux environnements transactionnels critiques