Donnez une simple table sqlite3 (create table data (key PRIMARY KEY,value)
) avec une taille de clé de 256 octets et une valeur de 4096 octets, quelle est la limite (en ignorant les limites d'espace disque) sur le nombre maximal de lignes dans cette table sqlite3 table? Sont leurs limites associées à OS (win32, Linux ou Mac)Nombre maximal de lignes dans une table sqlite
Répondre
Dans SQLite3, la taille du champ n'est pas fixe. Le moteur engagera autant d'espace que nécessaire pour chaque cellule .
Pour les limites de fichiers voir cette question SO:
What are the performance characteristics of sqlite with very large database files?
essentiellement aucune limite réelle
voient http://www.sqlite.org/limits.html pour plus de détails
La réponse que vous voulez is right here. Chaque système d'exploitation que vous avez mentionné prend en charge plusieurs types de système de fichiers. Les limites réelles seront par système de fichiers, pas par OS. Il est difficile de résumer la matrice de contraintes sur SO, mais alors que certains systèmes de fichiers imposent des limites sur la taille des fichiers, tous les principaux noyaux d'OS supportent aujourd'hui un système de fichiers avec des fichiers extrêmement volumineux.
La taille de page maximale d'un sqlite3 db est assez grande, 2^32768, bien que cela nécessite une certaine configuration. Je suppose qu'un index doit spécifier un numéro de page mais le résultat est susceptible d'être une limite de système d'exploitation ou d'environnement est atteinte en premier.
Pas de limites, mais au fond, après un certain point la base de données SQLite deviendra inutile. PostgreSQL est la meilleure base de données gratuite BY FAR pour les bases de données énormes. Dans mon cas, il s'agit d'environ 1 million de lignes sur mon ordinateur Linux Dual Core Dual Processor 64 bits avec 8 Go de RAM et de disques durs Raptor. PostgreSQL est imbattable, même avec une base de données MySQL ajustée. (Publié en 2011).
1 million de lignes n'est * pas * une table énorme, grande peut-être, mais pas énorme. – Ryaner
À partir de janvier 2017 le sqlite3 limits page définit les limites pratiques à cette question en fonction de la taille maximale de la base de données est de 140 téraoctets:
Nombre maximum de lignes dans un tableau
Le le nombre maximum théorique de lignes dans un tableau est de 2^64 (18446744073709551616 ou environ 1,8e + 19). Cette limite est inaccessible car la taille maximale de la base de données de 140 téraoctets sera atteinte en premier. Une base de données de 140 téraoctets ne peut contenir plus d'environ 1e + 13 lignes, et seulement s'il n'y a pas d'index et si chaque ligne contient très peu de données.
Donc, avec une taille de base de données maximum de 140 téraoctets vous auriez la chance d'avoir ~ 1 billion de lignes car si vous aviez fait une table utile avec les données qu'il contient le nombre de lignes serait limitée par la taille de la Les données. Vous pourriez probablement avoir jusqu'à 10s de milliards de lignes dans une base de données de 140 To.
Était en train de lire la documentation ... 1.4e + 14 octets (140 téraoctets), mais la limite de taille réelle est les limites de taille de fichier du système d'exploitation sous-jacent, ce qui est beaucoup plus faible. – BonanzaDriver
@aculich, Ceci est une réponse théorique qui n'a pas d'utilité ** en pratique **. Pour une réponse pratique que les programmeurs pratiques écrivant des applications pratiques voudraient pratiquement savoir dans la pratique, s'il vous plaît lire http://stackoverflow.com/q/784173/632951 – Pacerier
J'ai une base de données SQLite de 3,3 Go de taille avec 25 millions de rangées de journaux numériques stockés et de faire des calculs sur eux, cela fonctionne vite et bien.
J'ai une base de données SQLite de 7,5 Go qui stocke 10,5 millions de lignes. L'interrogation est rapide tant que vous avez des index corrects. Pour que les insertions s'exécutent rapidement, vous devez utiliser des transactions. En outre, j'ai trouvé qu'il est préférable de créer les index après toutes les lignes ont été insérées. Sinon, la vitesse d'insertion est assez lente.
- 1. Nombre maximal d'unités de travail dans une demande de page?
- 2. SQLite - obtention du nombre de lignes dans une base de données
- 3. Nombre maximal d'options cliquables # IE8
- 4. Quel est le nombre maximal d'arguments dans une fonction Python?
- 5. Afficher le nombre de lignes d'une autre table dans Django
- 6. Nombre maximal de tables exploitables dans SQL Server et MySQL
- 7. Oracle 10g Nombre maximal de sessions expirées
- 8. Nombre maximal de requêtes HttpWeb simultanées
- 9. Service WCF Nombre maximal de méthodes
- 10. Comment renommer une table dans SQLite 3.0?
- 11. Liste personnalisée: limite Nombre maximal d'éléments
- 12. Twitter - Nombre maximal d'états par heure
- 13. Compare la valeur de la base de données au nombre de lignes dans une autre table
- 14. en comptant le nombre de lignes dans une table en utilisant mysql
- 15. Recherche de la différence dans les lignes de requête SQLite
- 16. Nombre de lignes SQLBulkCopy une fois rempli
- 17. Aide: Nombre maximal de clients atteint - Défaut de segmentation
- 18. Nombre maximal de connexions TCP/IP simultanées - Win XP SP3
- 19. SQLite - tri d'une table
- 20. Quelle est la limite du nombre maximal de fichiers?
- 21. Insertion de lignes dans une table avec une identité prédéfinie
- 22. Déterminer le nombre de lignes dans une plage
- 23. Comment corriger une incompatibilité de nombre de lignes Table/Index oracle
- 24. Insertion d'un nombre dynamique de lignes dans SQL Server
- 25. Création de nouvelles lignes modifiables dans une table
- 26. JavaScript ne comparant pas les valeurs de nombre supérieur au nombre maximal
- 27. Comment vérifier le nombre maximal de connexions autorisées à une base de données Oracle?
- 28. Quel est le nombre maximal de caractères autorisés dans un champ Note dans SharePoint?
- 29. Compte le nombre de lignes dans chaque groupe
- 30. SQLite - augmenter la valeur d'un certain nombre
Les limites pratiques pour les lignes [ont été mises à jour] (http://stackoverflow.com/a/9456705/462302) pour être mieux définies. Même quand ils n'étaient pas bien définis, il y avait toujours de vraies limites même si "SQLite a été conçu à l'origine avec une politique d'éviter les limites arbitraires ... Malheureusement, la politique de non-limites a été montrée pour créer des problèmes. n'étaient pas bien définis, ils n'étaient pas testés, et des bugs (y compris d'éventuels exploits de sécurité) ont souvent été trouvés en poussant SQLite à l'extrême. " – aculich