Réponse courte: la clé primaire de votre table doit être de type BIGINT:
CREATE TABLE hydr(dt bigint primary key, value double, sensorid int);
Dans ce cas, la table est organisée en utilisant la colonne « dt ». Ceci est appelé "index cluster". Le type de données TIMESTAMP n'est pas pris en charge, principalement parce qu'il contient également des nanosecondes. Ce que vous pouvez faire est de stocker l'horodatage unix (millisecondes depuis 1970) en tant que BIGINT. Réponse longue: La documentation sur la façon dont les données sont stockées en interne dans H2 est médiocre. Je vais ajouter la section suivante à la documentation "performance" de la base de données H2. J'espère que cela éclaircir les choses (sinon s'il vous plaît me dire):
Comment les données sont stockées en interne
Pour les bases de données persistantes, si une table est créée avec une clé primaire de colonne de type BIGINT, INT , SMALLINT, TINYINT, alors les données de la table sont organisées de cette manière. Ceci est parfois appelé un "index clusterisé" ou une "table organisée indexée". H2 stocke en interne les données de table et les index sous la forme de b-arbres. Chaque b-tree stocke les entrées sous la forme d'une liste de clés uniques (une ou plusieurs colonnes) et de données (zéro ou plusieurs colonnes). Les données de la table sont toujours organisées sous la forme d'un "arbre de données" avec une seule clé de colonne de type long. Si une clé primaire à colonne unique de type BIGINT, INT, SMALLINT, TINYINT est spécifiée lors de la création de la table, cette colonne est utilisée comme clé de l'arborescence de données. Si aucune clé primaire n'a été spécifiée, si la colonne de clé primaire est d'un autre type de données ou si la clé primaire contient plusieurs colonnes, une colonne d'incrémentation automatique masquée de type BIGINT est ajoutée à la table, qui est utilisée comme la clé pour le b-arbre de données. Toutes les autres colonnes de la table sont stockées dans la zone de données de cet arbre de données (sauf pour les grandes colonnes BLOB, CLOB, qui sont stockées en externe).
Pour chaque index supplémentaire, un nouveau "index b-tree" est créé. La clé de ce b-tree se compose des colonnes indexées, plus la clé de l'arbre b de données. Si une clé primaire est créée après l'insertion de données ou si la clé primaire contient plusieurs colonnes ou si la clé primaire ne correspond pas aux types de données répertoriés ci-dessus, la clé primaire est stockée dans un nouvel arbre b-index.
merci Thomas pour une réponse, cela m'a aidé à mieux comprendre H2. Bien sûr, c'est une réponse à une question. – Tim