[
https://issues.apache.org/jira/browse/DERBY-3937?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12659435#action_12659435
]
Martin Thelian commented on DERBY-3937:
---------------------------------------
I have the same problem in my project. Executing a simple "select count(*)" on
a table containing ~70 million entries took approximately 8 minutes.
Using the trigger approach is not an option for me because I'm using derby via
hibernate and using db-triggers would not allow me to keep my code db
independent.
Any other suggestion how to solve this problem? Thanks.
> Select count(*) scans all the rows (and is therefore slow with big tables),
> is the amount of rows not available/known for example in index ?
> --------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: DERBY-3937
> URL: https://issues.apache.org/jira/browse/DERBY-3937
> Project: Derby
> Issue Type: Improvement
> Components: Performance
> Environment: Any
> Reporter: Martin Hajduch
>
> Create table with 5000000 rows. Create index on unique ID. Select count(*) on
> such table is going to take quite some time.
> Shouldn't the index contain amount of indexed rows and the value taken from
> there ?
> Additionally, queries of the form select count(*) from table where
> col1=value; take lots of time (depending on amount of rows satisfying WHERE
> clause) even if index on col1 exists. Isn't it possible to find first and
> last occurence in the index, and then calculate amount of rows more
> effectively then scanning through all of them ?
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.