Προς το περιεχόμενο
  • Εγγραφή
  • 0

json για να μη φορτώνω τη MySql με rows


gekatsou

Ερώτηση

Σε κάθε άρθρο πρέπει να ξέρω ποιος έκανε subscribe ή απάντησε.

Με την MySql αν βάζω ξεχωριστά κάθε δραστηριότητα το Ι/Ο θα χτυπήσει κόκκινο.

Αλλά αν για κάθε χρήστη έχω ένα row με ένα text field που θα έχει json array θα ελαφρύνει πολύ και το Ι/Ο και το θέμα της χωρητικότητας.

Το μόνο αρνητικό είναι ο χρόνος που θα κάνει να το κάνει load και για insert delete μιας και πρέπει να το select - decode πρώτα και μετά να το encode και update.

Ή είναι καλύτερο ένα τεράστιο table με κάθε entry ως row;

Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

6 απαντήσεις σε αυτή την ερώτηση

Προτεινόμενες αναρτήσεις

  • 1
1 ώρα πριν, gekatsou είπε

Σε κάθε άρθρο πρέπει να ξέρω ποιος έκανε subscribe ή απάντησε.

Με την MySql αν βάζω ξεχωριστά κάθε δραστηριότητα το Ι/Ο θα χτυπήσει κόκκινο.

Αλλά αν για κάθε χρήστη έχω ένα row με ένα text field που θα έχει json array θα ελαφρύνει πολύ και το Ι/Ο και το θέμα της χωρητικότητας.

Το μόνο αρνητικό είναι ο χρόνος που θα κάνει να το κάνει load και για insert delete μιας και πρέπει να το select - decode πρώτα και μετά να το encode και update.

Ή είναι καλύτερο ένα τεράστιο table με κάθε entry ως row;

Μια χαρα ειναι και to table

Ζητημα να εχεις καποιες δεκαδες χιλιαδες συνολικα ποστ (τα μεγαλυτερα ελληνικα φορουμ εχουν καποιες εκατονταδες χιλιαδες) που ειναι αστειος ογκος για την MySQL

  • Like 1
Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0
Δημοσ. (επεξεργασμένο)
Αναφορά σε κείμενο

Αλλά αν για κάθε χρήστη έχω ένα row με ένα text field που θα έχει json array θα ελαφρύνει πολύ και το Ι/Ο και το θέμα της χωρητικότητας.

Δεν ειναι καλο να εχεις embedded json array μεσα σε ενα field. Θα εχεις θεμα με edit/update καθε φορα. Ασε που μπορεί να μεγαλώνει και να γινει αργο.

Θα εχεις ενα αλλο table με info απο τη δραστηριοτητα + customerId + articleId. To join info-customer-article δεν νομιζω να ειναι αργο. Δεν θα εχεις θεμα ουτε με ταχυτητα εισαγωγης στο info.

Επεξ/σία από albNik
  • Like 2
Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

Κοίτα IMHO ποιο περίπκολο IO έχεις σε Json γιατί:

  1. Εάν η MYSQL επιτρέπει JSON τότε έχεις περίπλοκο SQL query.
  2. Εάν δεν έχεις περίπλοκο SQL Query θα πρέπει να λαμβάνεις ΟΛΟ το JSON να το αννανεώνεις και να το αποθηκεύεις.

Εάν το δούμε από επεκτασιμότητα το να έχεις πίνακα βολεύει διότι μπορείς να εξάγεις εύκολα στατιστικά (πόσοι χρήστες ανά άρθρο κάνουν comments)

Τέλος, εάν δεν θες να έχεις υποδομή για comments (πχ. λιγότερο storage στη βάση ή δεν θες να κάνεις maintain κώδικα) δοκίμασε τα 3rd party comment hosting:

  1. https://www.remarkbox.com/finally-a-disqus-alternative.html
  2. https://www.commento.io/
  3. https://disqus.com/
  4. Όπως και άλλες https://talk.hyvor.com/blog/disqus-alternatives/

 

  • Like 1
Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

Ευχαριστώ για τις απαντήσεις. 

Το χρησιμοποιώ το embed JSON σε MySql table ήδη για κάποια fields που δεν είναι κανονισμένα, και δεν μπορώ να ξέρω ποια θα χρησιμοποιήσει ο χρήστης, σε ένα "pivot" table. 

Βολεύει πολύ, μπορώ να κάνω SELECT το path (JSON) με το '%/"".$value."\"%'  και να βρω οτιδήποτε θέλω. Σε αυτή τη περίπτωση ξέρω ότι οι μεταβλητές μπορεί να είναι μέχρι 10 μέσα στο JSON.

Με τις ειδοποιήσεις και τις συνδρομές σκέφτηκα να κάνω το ίδιο λόγο resources αλλά άλλαξα γνώμη με τις προτάσεις σας. Τώρα ψάχνω ένα τρόπο έτσι ώστε να το αδειάζω κάπως και να μην είναι μόνιμα οι ειδοποιήσεις μέσα στο τραπέζι.

Ευχαριστώ και πάλι.

Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0
5 ώρες πριν, gekatsou είπε

Ευχαριστώ για τις απαντήσεις. 

Το χρησιμοποιώ το embed JSON σε MySql table ήδη για κάποια fields που δεν είναι κανονισμένα, και δεν μπορώ να ξέρω ποια θα χρησιμοποιήσει ο χρήστης, σε ένα "pivot" table. 

Βολεύει πολύ, μπορώ να κάνω SELECT το path (JSON) με το '%/"".$value."\"%'  και να βρω οτιδήποτε θέλω. Σε αυτή τη περίπτωση ξέρω ότι οι μεταβλητές μπορεί να είναι μέχρι 10 μέσα στο JSON.

Με τις ειδοποιήσεις και τις συνδρομές σκέφτηκα να κάνω το ίδιο λόγο resources αλλά άλλαξα γνώμη με τις προτάσεις σας. Τώρα ψάχνω ένα τρόπο έτσι ώστε να το αδειάζω κάπως και να μην είναι μόνιμα οι ειδοποιήσεις μέσα στο τραπέζι.

Ευχαριστώ και πάλι.

Εάν θες ειδοποιήσεις μπορείς να τις αδειάζεις με ένα cron.

Τέλος, υπάρχει και αυτό που ίσως να βολεύει για notifications: https://pusher.com/

  • Like 1
Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Εγγραφείτε για έναν νέο λογαριασμό

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...

Με την περιήγησή σας στο insomnia.gr, αποδέχεστε τη χρήση cookies που ενισχύουν σημαντικά την εμπειρία χρήσης.