Chrisad Δημοσ. 8 Νοεμβρίου 2015 Δημοσ. 8 Νοεμβρίου 2015 (επεξεργασμένο) Για χαρά σε όλους, έχω ένα project στο μυαλό μου , το οποίο θα ήθελα τη συμβουλή - συμβολή σας σχετικά με τον καλύτερο τρόπο υλοποίησης του.Δεν ξέρω πια γλώσσα προγραμματισμού είναι η ιδανική για αυτό και δεν το βάζω σαν κριτήριο. Αυτό που βασικά χρειάζομαι είναι η ταχύτερη δυνατή αναζήτηση στη βάση αρκετά πολύπλοκων ερωτημάτων.Τα δεδομένα :Έχω μια βάση με 5.000 έγγραφες, οι έγγραφες προοδευτικά θα ανέβουν πάρα πολύ αλλά ένας πρώτος στόχος είναι 30.000 με 50.000 έγγραφες, σε βάθος χρόνου όμως ίσως είναι και πολλαπλάσιες των 50 Χιλιάδων.... Οι εν λόγω εγγραφές είναι νούμερα από το 0-36, χωρισμένα σε 6 ομάδες (GROUPS) , 1- 35 3 26 0 32 15 19 2 -4 21 2 25 17 34 * 3- 6 27 13 36 11 30 * 4 -8 23 10 5 24 16 * 5- 33 1 20 14 31 9 * 6- 22 18 29 7 28 12 * Παράδειγμα βάσης :'ID', 'TIME', 'NUMBER', 'GROUP', 'SESSION_ID', 'C_ID', 'USER_ID''4726', '1446776150', '11', '3', '078489783620431445735311747982', '11', '1''4727', '1446776220', '36', '3', '078489783620431445735311747982', '11', '1''4728', '1446776282', '11', '3', '078489783620431445735311747982', '11', '1''4729', '1446776345', '16', '4', '078489783620431445735311747982', '11', '1''4730', '1446776413', '0', '1', '078489783620431445735311747982', '11', '1''4731', '1446776492', '20', '5', '078489783620431445735311747982', '11', '1''4732', '1446776551', '7', '6', '078489783620431445735311747982', '11', '1''4733', '1446776609', '9', '5', '078489783620431445735311747982', '11', '1''4734', '1446776682', '19', '1', '078489783620431445735311747982', '11', '1'Παράδειγμα query :Οι 3 τελευταίες εγγραφές στη βάση είναι :NUMBER - GROUP7- 69 - 519 - 1Θέλω λοιπόν να γίνει αναζήτηση στη βάση σχετικά με το GROUP , για το πόσες φορές έχει έρθει αυτή η σειρά ξανά 6,5,1 ΑΚΡΙΒΏΣ όμως με την ίδια σειρά και ποιο GROUP ακολούθησε μετά και με ποιο ποσοστό επί των εμφανίσεων. Υπάρχουν αρκετά ερωτήματα που θέλω να τρέχουν μόλις εισάγετε κάποιο νούμερο στη βάση.Περισσότερες λεπτομέρειες με pm αν ενδιαφέρεται κάποιος για να το αναλάβει.Έχει γίνει ήδη μια υλοποίηση σε web application αλλά αρχίζει και δεν με καλύπτει, περισσότερο λόγω ταχύτητας.Σε pm όσοι ενδιαφέρεστε να το αναλάβετε, προκειμένου να συζητήσουμε περισσότερες λεπτομέρειες και φυσικά την αμοιβή σας. Επεξ/σία 8 Νοεμβρίου 2015 από Chrisad
NikosKallithea Δημοσ. 8 Νοεμβρίου 2015 Δημοσ. 8 Νοεμβρίου 2015 Φτιαξε μια βαση δεδομένων και κανε ερωτηματα
Chrisad Δημοσ. 9 Νοεμβρίου 2015 Μέλος Δημοσ. 9 Νοεμβρίου 2015 Η βάση υπάρχει και κάποια ερωτήματα υπάρχουν επίσης, αν διαβάσεις προσεκτικά τι ζητάω , αφενός θέλω την καλύτερη δυνατή πρόταση με βασικό κριτήριο την ταχύτητα, και αφετέρου χρειάζομαι βοήθεια σε πολύπλοκα ερωτήματα.
Aztec Δημοσ. 9 Νοεμβρίου 2015 Δημοσ. 9 Νοεμβρίου 2015 (επεξεργασμένο) π.χ με indexed non gapped sequential ID και GRP (composite index) απλή λυση στο πόσες φορές ήρθε η ακολουθία MySQL example create table sequ ( num int, grp int); insert into sequ values (4723,6); insert into sequ values (4724,5); insert into sequ values (4725,1); insert into sequ values (4726,3); insert into sequ values (4727,3); insert into sequ values (4728,3); insert into sequ values (4729,4); insert into sequ values (4730,1); insert into sequ values (4731,5); insert into sequ values (4732,6); insert into sequ values (4733,5); insert into sequ values (4734,1); Πόσες φορές εμφανίστηκε η ακολουθία 6-5-1 select count(1) from sequ a, sequ b , sequ c where a.num+2=b.num+1 and b.num+1=c.num and a.grp=6 and b.grp=5 and c.grp=1; για τον χαβαλέ βέβαια γιατί ο φίλος ήθελε developer και όχι βοήθεια απο εδω Επεξ/σία 9 Νοεμβρίου 2015 από Aztec
hestia Δημοσ. 9 Νοεμβρίου 2015 Δημοσ. 9 Νοεμβρίου 2015 αντε να σου πω εναν τροπο μιας και βλεπω οτι σας προβληματιζουν πολυ απρα πραγματα. Η εντολη που θες λεγετε TRIGER.και επεξηγω. ΦΤιοαχνεις εναν πινακα Β που εκει θα εχει τις εγγραφες με την σειρα πχ. Id motivo TimesCount 1 6-5-1 12 2 3-2 1 32 σε αυτον τον πινακα θα ενημερωνεις καθε φορα που μπαινει μια νες εγγραφη με TRIGGER και θα κανεις το εξης. 1) Θα βρισκεις τα 3 τελευτεα Numbers ( αυτο το ονομαζω Motivo) 2) Θα ελεγχεις αν αυτος ο συνδιασμος υπαρχει στον πινακα Β με ενα απλο QUERY α) Αν υπαρχει κανεις Update to πεδιο TimesCount ( διηλαδη τις φορες εμφανισης) β) Αν δεν υπαρχει το κανεις Insert με τιμη 1 στο TimesCount.Αυτος ειναι ο μοναδικος τροπος για να εχεις την απολυτη Ταχυτητα ανεξαρτητα απο τις ποσες εγγραφες θα εχεις στον πινακα Α.
Chrisad Δημοσ. 10 Νοεμβρίου 2015 Μέλος Δημοσ. 10 Νοεμβρίου 2015 ========================================================================================= αντε να σου πω εναν τροπο μιας και βλεπω οτι σας προβληματιζουν πολυ απρα πραγματα. Η εντολη που θες λεγετε TRIGER. και επεξηγω. ΦΤιοαχνεις εναν πινακα Β που εκει θα εχει τις εγγραφες με την σειρα πχ. Id motivo TimesCount 1 6-5-1 12 2 3-2 1 32 σε αυτον τον πινακα θα ενημερωνεις καθε φορα που μπαινει μια νες εγγραφη με TRIGGER και θα κανεις το εξης. 1) Θα βρισκεις τα 3 τελευτεα Numbers ( αυτο το ονομαζω Motivo) 2) Θα ελεγχεις αν αυτος ο συνδιασμος υπαρχει στον πινακα Β με ενα απλο QUERY α) Αν υπαρχει κανεις Update to πεδιο TimesCount ( διηλαδη τις φορες εμφανισης) β) Αν δεν υπαρχει το κανεις Insert με τιμη 1 στο TimesCount. Αυτος ειναι ο μοναδικος τροπος για να εχεις την απολυτη Ταχυτητα ανεξαρτητα απο τις ποσες εγγραφες θα εχεις στον πινακα Α. ========================================================================================= Ευχαριστώ πάρα πολύ τον hestia για τον χρόνο που διέθεσε σήμερα το μεσημέρι να ασχοληθεί με το θέμα μου, χωρίς να δεχθεί κανένα οικονομικό αντάλλαγμα και ομολογουμένως με εντυπωσιακά αποτελέσματα μέσα σε 30 λεπτά from scratch με έκανε να τρίβω τα μάτια μου. Έπεται συνέχεια...
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα