
# Κλιμάκωση & όρια

Το storh είναι αποθήκευση με προτεραιότητα στα αρχεία, όχι μηχανή σχεσιακών ερωτημάτων. Τα πρακτικά όρια, με αριθμούς αναφοράς από τις [δοκιμές επιδόσεων](https://storh.inline0.dev/el/docs/benchmarks) (50k εγγραφές, Apple M1 Pro):

- Η σημειακή πρόσβαση είναι ουσιαστικά απεριόριστη, εφόσον το σύστημα αρχείων μπορεί να διαχειριστεί τον αριθμό των αρχείων και η συλλογή χρησιμοποιεί κατακερματισμό βάσει των τελευταίων UUID χαρακτήρων. Μια σημειακή ανάγνωση διαρκεί λίγα μικροδευτερόλεπτα· μια μόνιμη εγγραφή μίας εγγραφής περιορίζεται από το fsync σε λίγες χιλιάδες ανά δευτερόλεπτο.
- Οι σαρώσεις αρχείων καταγραφής με τμήματα, οι αναγνώσεις με δρομέα και οι αναγνώσεις χρονικού εύρους λειτουργούν ικανοποιητικά έως περίπου 1M εγγραφές, όταν τα μεγέθη των τμημάτων έχουν ρυθμιστεί για τον φόρτο εργασίας. Οι μαζικές προσθήκες φτάνουν δεκάδες χιλιάδες εγγραφές ανά δευτερόλεπτο· η ανάκτηση από ημιτελή ουρά επαναπαράγει εκατοντάδες χιλιάδες εγγραφές ανά δευτερόλεπτο κατά το εκ νέου άνοιγμα.
- Οι λειτουργίες ουράς προσθέτουν συμπαγή συμβάντα σε ένα μόνιμο αρχείο καταγραφής, επομένως η προσθήκη, η ανάληψη, η ολοκλήρωση, η επανατοποθέτηση και η εκκαθάριση αποφεύγουν την επιβάρυνση καταλόγων από τη δημιουργία ενός αρχείου ανά εργασία. Η μαζική ανάληψη και ολοκλήρωση επιμερίζουν το κλείδωμα και το fsync σε ολόκληρες παρτίδες.
- Οι σαρώσεις πεδίων ανά αρχείο στο `DocStore` επιβραδύνονται πέρα από περίπου 10k εγγραφές, επειδή κάθε σάρωση που ταιριάζει πρέπει να διατρέχει μεμονωμένα αρχεία. Δηλώστε [ευρετήρια](https://storh.inline0.dev/el/docs/indexes) για τα πεδία που φιλτράρετε· τα ερωτήματα ισότητας μέσω ευρετηρίου απαντώνται σε περίπου ένα χιλιοστό του δευτερολέπτου, ανεξάρτητα από το μέγεθος της συλλογής.
- Το storh δεν προορίζεται για ad hoc σχεσιακά ερωτήματα, συνδέσεις, φιλτράρισμα με εκτεταμένη χρήση δευτερευόντων ευρετηρίων ή αναλυτικές σαρώσεις πολλών πεδίων. Μεταφέρετε συλλογές σε ένα [SQL κατοπτρικό αντίγραφο](https://storh.inline0.dev/el/docs/sql-mirror) όταν χρειάζεστε αυτά τα μοτίβα ανάγνωσης· διατηρήστε το κύριο σύστημα καταγραφής σε πραγματική βάση δεδομένων όταν χρειάζεστε συναλλαγές πολλών εγγραφών.

Χρησιμοποιήστε το `DocStore` όταν κυριαρχούν οι σημειακές αναγνώσεις, το `SegmentedLog` όταν κυριαρχούν οι προσθήκες και οι ταξινομημένες αναγνώσεις, και το `Queue` για απλή ανθεκτική αποστολή εργασιών. Δείτε τη [σύγκριση μηχανών](https://storh.inline0.dev/el/docs/engines#choosing-an-engine) για παράθεση δίπλα δίπλα.
