optimize date query

Συζητήσεις για την βάση δεδομένων MySQL και το phpMyAdmin

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Άβαταρ μέλους
MeTaL-RoY
Δημοσιεύσεις: 67
Εγγραφή: 12 Μαρ 2003 16:58
Τοποθεσία: Athens
Επικοινωνία:

optimize date query

Δημοσίευση από MeTaL-RoY » 02 Μαρ 2007 12:29

Γειά σας,

Έχω ένα πεδιό που λέγεται imerom είναι date field(με ημερομηνίες γέννησης). Επειδή γίνονται συχνά αναζητήσεις σε αυτό το έχω κάνει index. Όμως όταν εκτελώ:

explain SELECT * FROM man where imerom > '1958';

βλέπω ότι δεν χρησιμοποιεί το index.

id | Select type | table | type | possible_keys | key | key_len | ref | rows | Extra
1 simple man ALL imerom null null null 58900 using where

Χρησιμοποιεί μόνο όταν η αναζήτηση είναι με ισότητα.
Όμως δυστυχώς πρέπει να επιλέγω τους users του πίνακα από μια ηλικία και πάνω οπότε είμαι υποχρεωμένος να χρησιμοποιώ ανισότητα.

Υπάρχει κάτι που να μπορώ να κάνω για να βελτιστοποιήσω την αναζήτηση?

ευχαριστώ

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

optimize date query

Δημοσίευση από fafos » 02 Μαρ 2007 15:32

Gia dokimase to etsi:
SELECT * FROM man where imerom > ('1958')
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
MeTaL-RoY
Δημοσιεύσεις: 67
Εγγραφή: 12 Μαρ 2003 16:58
Τοποθεσία: Athens
Επικοινωνία:

optimize date query

Δημοσίευση από MeTaL-RoY » 02 Μαρ 2007 17:37

όχι δυστυχώς...

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

optimize date query

Δημοσίευση από skeftomilos » 02 Μαρ 2007 18:20

Optimize range queries
I’ve noticed many people have a tendency to write SELECT * FROM... queries. If you don’t need all the columns, don’t select all the columns, because it can make the difference between a fast and a slow query.
MySQL tends to be very poor about loose index scans or repeated range scans on a non-prefix column in an index. It may also be evaluating the statistics and deciding it’s cheaper to do a full scan.
Πηγή: How to exploit MySQL index optimizations
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

Άβαταρ μέλους
MeTaL-RoY
Δημοσιεύσεις: 67
Εγγραφή: 12 Μαρ 2003 16:58
Τοποθεσία: Athens
Επικοινωνία:

optimize date query

Δημοσίευση από MeTaL-RoY » 02 Μαρ 2007 19:51

skeftomilos έχω φάει τον κόσμο να βρώ ένα κείμενο που να αναλύει το θέμα αλλά δε μπορώ να βρω κάτι ικανοποιητικό. Θα μπορούσες μήπως αν γνωρίζεις να προτείνεις κάποιο κείμενο.
thanks anyway

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

optimize date query

Δημοσίευση από skeftomilos » 02 Μαρ 2007 20:06

Από MySQL δεν ξέρω πολλά πράματα. Πριν λίγο καιρό είχα μια παρόμοια περίπτωση, συγκεκριμένα αντιστοίχιση μεταξύ χωρών και IP ranges σε MS SQL Server. Με SQL δεν κατάφερα να έχω ικανοποιητική απόδοση οπότε φόρτωσα τα data στη μνήμη. Σε κάθε αναζήτηση γίνεται ένα binary search στα κασαρισμένα και σορταρισμένα data. Η απόδοση βελτιώθηκε κατά 3000:1.
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

optimize date query

Δημοσίευση από fafos » 02 Μαρ 2007 20:09

Sthn imerom vazeis mono thn xronia h kai hmera mhna?
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

optimize date query

Δημοσίευση από cherouvim » 02 Μαρ 2007 21:16

Για πόσα rows μιλάμε;

Άβαταρ μέλους
MeTaL-RoY
Δημοσιεύσεις: 67
Εγγραφή: 12 Μαρ 2003 16:58
Τοποθεσία: Athens
Επικοινωνία:

optimize date query

Δημοσίευση από MeTaL-RoY » 03 Μαρ 2007 00:51

Βάζω όλη την ημερομηνία. Την αναζήτηση πλέον τη γράφω imerom > '1953-1-1' και χρησιμοποιεί index. υπάρχει τρόποσ να βελτιστοποιηθεί παραπάνω;

Μιλάμε για 60.000 γραμμές.

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

optimize date query

Δημοσίευση από fafos » 03 Μαρ 2007 04:14

Malon prepei na xrhsimopoihseis to like %...% gia na dolepsei se xronia h anazhthsh...
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Απάντηση

Επιστροφή στο “MySQL”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες