Un tuto expliquant HBase et le concept de bases orientées colonnes (et non lignes / n-uplets).
-
L'indice des primary keys commence à 1 et non à 0 (donc faire bien attention avec des insert efrectués manuellement lorsque l'on veut s'assurer qu'un tuple dispose d'un ID en particulier).
-
Mieux vaut utiliser des ID en UNSIGNED, par exemle :
id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT
Ceux-ci permettent de n'avoir que des ID positifs et rangés pas ordre croissant, ce qui améliore la recherche. De plus votre limite passera de 2 millards d'entrées à 4 milliards d'entrées dans cette table.
- Préférez le type INT UNSIGNED à BIGINT (qui peut aussi être UNSIGNED). Vous ferai une économie mémoire d'environ 12% sur les recherches et économiserez 4 octets sur le disque par tuple ayant un id (et ceci pour chaque table).
Limitations :
- BIGINT UNSIGNED permet de gérer jusqu'à 2^64 - 1 entrées alors que INT UNSIGNED jusqu'à 2^32 - 1. On risque d'atteindre plus rapidement la limite non ?
==> Oui c'est vrai, mais admettons que :
- Notre système encaisse 100 000 insertions / jour.
- Cela fera 36 500 000 d'insertions / an.
- Soit 3 650 000 000 insertions pour 1 siècle.
Si votre application est toujours là dans 10 an ce sera déjà énorme alors 1 SIÈCLE !!!
Moralité, nous ne sommes pas Google.
(Pour Chlouchloutte)
Plus j'utilise ActiveJDBC et plus je trouve ce framework excellent.
Dessiner le schéma de sa base de données et générer le SQL qui va bien à partir de ce schéma.
Voici la liste des outils que j'ai trouvé et qui soient "gratuits" (le premier est sympa) :
N.B : je n'ai pas lu les conditions d'utilisation !
Bon, dans l'idée j'utilisais Gitea et impossible de migrer de la 1.3.3 vers la 1.4.0. Systématiquement le fichier de la base indiquait une corruption pendant la migration. Auparavant j'avais déjà perdu des données.
Bref, voici ce qu'il faut faire pour (1) protéger SQLite des erreurs d'écriture et (2) réparer l'index de la base quand celui-ci est cassé (attention, je n'ai jamais réussi à récupérer un datafile mort si l'équivalent de la MFT de SQLite était touché).
1) Pour éviter les erreurs avec SQLite, ne pas activer les options : noatime et nodiratime.
En effet, SQLite se servirait de la date de mise à jour des inodes pour gérer les accès concurrentiels au datafile. Cela est certes dit au conditionnel mais en supprimant ces options de mon /etc/fstab je n'ai plus d'ennuis.
2) Pour récupérer la base corrompue il faut :
-
Installer le paquet sqlite3 :
sudo apt install sqlite3
-
Saisir la commande :
sqlite3 gitea-broken.db ".dump" | sqlite3 gitea-repaired.db
Gérer Hibernate (ici v3) avec l'encodate UTF-8 et MySQL
Comment une entreprise peut-elle rémunérer une personne pour une activité sporadique ou ponctuelle.
En gros, la personne s'inscrit aux greffes en "franchise de base" (troisième statut après entrepreneur et micro-entrepreneur). La personne sera taxée à 11% et devra remplir la déclaration P0 sur le site de l'URSSAF (https://www.cfe.urssaf.fr/saisiepl/unsecure_index.jsp). Ensuite viendra l'impôt sur le revenu en fin d'année.
La réflexion de Timo sur le Revenu de Base (RdB) est celle qu'il faut mettre en avant. Les politiques habitués à déformer notre vocabulaire vont tuer dans l'oeuf une idée formidable et protection et d’émancipation des peuples.
Une autre documentation sur les bonnes pratiques de versioning de base de données.
Une liste de bonnes pratiques sur le versioning de base de données.
L'avenir est à JavaScript. Un autre tuto sur les bases MongoDb
Et comment utiliser cette base dans un fichier :
public static void main(String[] args) throws ClassNotFoundException, SQLException {
Class driver = Class.forName("org.h2.Driver");
Connection connect = DriverManager.getConnection("jdbc:h2:file:/mon/repertoire/ou/stocker/mes/donnees", "my_user_name", "my_password");
connect.close();
}