Προς το περιεχόμενο

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

Δημοσ. (επεξεργασμένο)

Για χαρά σε όλους, έχω ένα 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 - GROUP

7- 6
9 - 5
19 - 1

Θέλω λοιπόν να γίνει αναζήτηση στη βάση σχετικά με το GROUP , για το πόσες φορές έχει έρθει αυτή η σειρά ξανά  6,5,1 ΑΚΡΙΒΏΣ όμως με την ίδια σειρά και ποιο GROUP ακολούθησε μετά και με ποιο ποσοστό επί των εμφανίσεων. 

Υπάρχουν αρκετά ερωτήματα που θέλω να τρέχουν  μόλις εισάγετε κάποιο νούμερο στη βάση.

Περισσότερες λεπτομέρειες με pm αν ενδιαφέρεται  κάποιος για να το αναλάβει.

Έχει γίνει ήδη μια υλοποίηση σε web application αλλά αρχίζει και δεν με καλύπτει, περισσότερο λόγω ταχύτητας.

Σε pm όσοι ενδιαφέρεστε να το αναλάβετε, προκειμένου να συζητήσουμε περισσότερες λεπτομέρειες και φυσικά την αμοιβή σας.

Επεξ/σία από Chrisad
Δημοσ.

Η βάση υπάρχει και κάποια ερωτήματα υπάρχουν επίσης,  αν διαβάσεις προσεκτικά τι ζητάω , αφενός θέλω την καλύτερη δυνατή πρόταση με βασικό κριτήριο την ταχύτητα, και αφετέρου χρειάζομαι βοήθεια σε πολύπλοκα ερωτήματα.

Δημοσ. (επεξεργασμένο)

π.χ με 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 και όχι βοήθεια απο εδω

Επεξ/σία από Aztec
Δημοσ.

αντε να σου πω εναν τροπο μιας και βλεπω οτι σας προβληματιζουν πολυ απρα πραγματα.

 

Η εντολη που θες λεγετε 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.

Αυτος ειναι ο μοναδικος τροπος για να εχεις την απολυτη Ταχυτητα ανεξαρτητα απο τις ποσες εγγραφες θα εχεις στον πινακα Α.




 

Δημοσ.

 

=========================================================================================

 

αντε να σου πω εναν τροπο μιας και βλεπω οτι σας προβληματιζουν πολυ απρα πραγματα.

 

Η εντολη που θες λεγετε 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 με έκανε να τρίβω τα μάτια μου.

 

Έπεται συνέχεια...

 

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

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

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

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

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

Σύνδεση

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

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