maria-discuss team mailing list archive
-
maria-discuss team
-
Mailing list archive
-
Message #01809
R: optimization
Hi Roberto
1) Can't you use a relational table? (obvious suggestion, so probably the answer is no. but since MariaDB is relational, this is the main source of your troubles...)
2) If you need 1 row, why should an application send a query like that? It should send the simple SELECT first, and only if no row is found, it should try the non-optimizable SELECTs. If (for some reason I cannot know) this requires too many changes to the application, a simple stored procedure could do the same thing.
3) In case you are using MariaDB 10.0, did you check if this optimization is used?
https://mariadb.com/kb/en/mariadb/documentation/optimization-and-tuning/query-optimizations/filesort-with-small-limit-optimization/
Tchau!
Federico
--------------------------------------------
Mar 12/8/14, Roberto Spadim <roberto@xxxxxxxxxxxxx> ha scritto:
Oggetto: [Maria-discuss] optimization
A: "Maria Discuss" <maria-discuss@xxxxxxxxxxxxxxxxxxx>
Data: Martedì 12 agosto 2014, 22:19
guys, i have some
queries like this:
SELECT doc_hash_key FROM mov_documentos WHERE doc_hash_key
LIKE "j;1;$;294007/3nfe-1%"
UNION
SELECT doc_hash_key FROM mov_documentos WHERE doc_hash_key
LIKE "j;1;%;294007/3nfe-1%"
UNION
SELECT doc_hash_key FROM mov_documentos WHERE doc_hash_key
LIKE "j;1;%;%294007/3nfe-1%"
UNION
SELECT doc_hash_key FROM mov_documentos WHERE doc_hash_key
LIKE "%;%;$;%294007/3nfe-1%"
UNION
SELECT doc_hash_key FROM mov_documentos WHERE doc_hash_key
LIKE "%;%;%;294007/3nfe-1%"
UNION
SELECT doc_hash_key FROM mov_documentos WHERE doc_hash_key
LIKE "%;%;%;%294007/3nfe-1%"
LIMIT 1
it's a search about a document number, but the problem
is....
the first query at first line (with % at end of the query)
return really fast, but executing others queries are very
slow, the question is
could we optimize this kind of query, since limit=1
row?the explain of this query:
id
select_typetable
typepossible_keys
keykey_len
refrows
Extra1
PRIMARYmov_documentos
rangePRIMARY
PRIMARY77
1
Using where; Using index2
UNIONmov_documentos
rangePRIMARY
PRIMARY77
625612
Using where; Using index3
UNIONmov_documentos
rangePRIMARY
PRIMARY77
625612
Using where; Using index4
UNIONmov_documentos
index
PRIMARY77
1798490
Using where; Using index5
UNIONmov_documentos
index
PRIMARY77
1798490
Using where; Using index6
UNIONmov_documentos
index
PRIMARY77
1798490
Using where; Using index
UNION RESULT<union1,2,3,4,5,6>
ALL
--
Roberto Spadim
-----Segue allegato-----
_______________________________________________
Mailing list: https://launchpad.net/~maria-discuss
Post to : maria-discuss@xxxxxxxxxxxxxxxxxxx
Unsubscribe : https://launchpad.net/~maria-discuss
More help : https://help.launchpad.net/ListHelp
Follow ups
References