Κυκλοφορία του DBMS SQLite 3.40

Δημοσιεύτηκε η κυκλοφορία του SQLite 3.40, ενός ελαφρού DBMS που έχει σχεδιαστεί ως βιβλιοθήκη plug-in. Ο κώδικας SQLite διανέμεται ως δημόσιος τομέας, δηλ. μπορεί να χρησιμοποιηθεί χωρίς περιορισμούς και δωρεάν για οποιονδήποτε σκοπό. Οικονομική υποστήριξη για προγραμματιστές SQLite παρέχεται από μια ειδικά δημιουργημένη κοινοπραξία, η οποία περιλαμβάνει εταιρείες όπως οι Adobe, Oracle, Mozilla, Bentley και Bloomberg.

Βασικές αλλαγές:

  • Έχει εφαρμοστεί ένα πειραματικό χαρακτηριστικό για τη μεταγλώττιση του SQLite σε ενδιάμεσο κώδικα WebAssembly, ικανό να εκτελείται σε πρόγραμμα περιήγησης ιστού και κατάλληλο για οργάνωση εργασίας με τη βάση δεδομένων από εφαρμογές Ιστού σε JavaScript. Στους προγραμματιστές ιστού παρέχεται μια αντικειμενοστραφή διεπαφή υψηλού επιπέδου για εργασία με δεδομένα στο στυλ του sql.js ή του Node.js, μια σύνδεση μέσω του C API χαμηλού επιπέδου και ένα API που βασίζεται στον μηχανισμό Web Worker, που επιτρέπει μπορείτε να δημιουργήσετε ασύγχρονους χειριστές που εκτελούνται σε ξεχωριστά νήματα. Τα δεδομένα που αποθηκεύουν οι εφαρμογές Ιστού στην έκδοση WASM του SQLite μπορούν να αποθηκευτούν στην πλευρά του πελάτη χρησιμοποιώντας το OPFS (Origin-Private FileSystem) ή το API window.localStorage.
  • Προστέθηκε επέκταση ανάκτησης, σχεδιασμένη για ανάκτηση δεδομένων από κατεστραμμένα αρχεία από τη βάση δεδομένων. Στη διεπαφή γραμμής εντολών, η εντολή ".recover" χρησιμοποιείται για ανάκτηση.
  • Βελτιωμένη απόδοση σχεδιασμού ερωτημάτων. Οι περιορισμοί έχουν καταργηθεί κατά τη χρήση ευρετηρίων με πίνακες με περισσότερες από 63 στήλες (προηγουμένως, η ευρετηρίαση δεν εφαρμοζόταν όταν οι πράξεις με στήλες των οποίων ο τακτικός αριθμός υπερβαίνει το 63). Βελτιωμένη ευρετηρίαση των τιμών που χρησιμοποιούνται στις εκφράσεις. Σταμάτησε να φορτώνει μεγάλες συμβολοσειρές και σταγόνες από το δίσκο κατά την επεξεργασία των τελεστών NOT NULL και IS NULL. Αποκλείεται η υλοποίηση προβολών για τις οποίες πραγματοποιείται πλήρης σάρωση μόνο μία φορά.
  • Στη βάση κώδικα, αντί για τον τύπο "char *", χρησιμοποιείται ένας ξεχωριστός τύπος sqlite3_filename για την αναπαράσταση των ονομάτων αρχείων.
  • Προστέθηκε εσωτερική συνάρτηση sqlite3_value_encoding().
  • Προστέθηκε η λειτουργία SQLITE_DBCONFIG_DEFENSIVE, η οποία απαγορεύει την αλλαγή της έκδοσης του σχήματος αποθήκευσης δεδομένων.
  • Πρόσθετοι έλεγχοι έχουν προστεθεί στην υλοποίηση της παραμέτρου «PRAGMA integrity_check». Για παράδειγμα, οι πίνακες χωρίς το χαρακτηριστικό STRICT δεν πρέπει να περιέχουν αριθμητικές τιμές σε στήλες τύπου TEXT και τιμές συμβολοσειρών με αριθμούς σε στήλες τύπου NUMERIC. Προστέθηκε επίσης ένας έλεγχος για τη σωστή σειρά των σειρών σε πίνακες με το χαρακτηριστικό "ΧΩΡΙΣ ROWID".
  • Η έκφραση "VACUUM INTO" λαμβάνει υπόψη τις ρυθμίσεις "PRAGMA synchronous".
  • Προστέθηκε η επιλογή συναρμολόγησης SQLITE_MAX_ALLOCATION_SIZE, η οποία σας επιτρέπει να περιορίσετε το μέγεθος των μπλοκ κατά την εκχώρηση μνήμης.
  • Ο ενσωματωμένος αλγόριθμος δημιουργίας ψευδοτυχαίων αριθμών του SQLite έχει μετακινηθεί από τη χρήση του κρυπτογράφησης ροής RC4 στο Chacha20.
  • Επιτρέπεται η χρήση ευρετηρίων με τα ίδια ονόματα σε διαφορετικά σχήματα δεδομένων.
  • Έχουν γίνει βελτιστοποιήσεις απόδοσης για τη μείωση του φορτίου της CPU κατά περίπου 1% κατά τη διάρκεια της τυπικής δραστηριότητας.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο