# Pagination, how to disable COUNT query?

**URL:** <https://discourse.cakephp.org/t/pagination-how-to-disable-count-query/5519>\
**Category:** Uncategorized\
**Created:** [January 13, 2019, 11:39pm UTC](https://discourse.cakephp.org/t/pagination-how-to-disable-count-query/5519 "2019-01-13T23:39:49Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![Ruslan](https://avatars.discourse-cdn.com/v4/letter/r/2bfe46/32.png) [@Ruslan](https://discourse.cakephp.org/u/Ruslan)\
**Post date:** [January 13, 2019, 11:39pm UTC](https://discourse.cakephp.org/t/pagination-how-to-disable-count-query/5519/1 "2019-01-13T23:39:49Z")

</div>

Hi,  
Is it possible in Pagination component to disable SELECT COUNT(1) - query ?  
For big tables on InnoDB it takes long time.

Thank you.

---

<div class="post-metadata">

**Author:** ![ADmad](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.cakephp.org/admad/32/20_2.png) [@ADmad](https://discourse.cakephp.org/u/ADmad)\
**Post date:** [January 14, 2019, 7:09am UTC](https://discourse.cakephp.org/t/pagination-how-to-disable-count-query/5519/2 "2019-01-14T07:09:57Z")

</div>

How do you expect to get the total count (which is required to generate page numbers) without doing the count query?

---

<div class="post-metadata">

**Author:** ![Ruslan](https://avatars.discourse-cdn.com/v4/letter/r/2bfe46/32.png) [@Ruslan](https://discourse.cakephp.org/u/Ruslan)\
**Post date:** [January 14, 2019, 10:21am UTC](https://discourse.cakephp.org/t/pagination-how-to-disable-count-query/5519/3 "2019-01-14T10:21:32Z")

</div>

Easy, not use Totatal count at all.

Thank you.

---

<div class="post-metadata">

**Author:** ![Salines](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.cakephp.org/salines/32/3166_2.png) [@Salines](https://discourse.cakephp.org/u/Salines)\
**Post date:** [January 17, 2019, 3:07pm UTC](https://discourse.cakephp.org/t/pagination-how-to-disable-count-query/5519/4 "2019-01-17T15:07:51Z")

</div>

Have you indexes table ?

---

<div class="post-metadata">

**Author:** ![Ruslan](https://avatars.discourse-cdn.com/v4/letter/r/2bfe46/32.png) [@Ruslan](https://discourse.cakephp.org/u/Ruslan)\
**Post date:** [January 17, 2019, 7:09pm UTC](https://discourse.cakephp.org/t/pagination-how-to-disable-count-query/5519/5 "2019-01-17T19:09:42Z")

</div>

Sure.  
You can make a test:  
Take a table with 1000k rows on InnoDB and paginate it.  
COUNT (1) FROM - works few seconds.

---

<div class="post-metadata">

**Author:** ![deanoj](https://avatars.discourse-cdn.com/v4/letter/d/bcef8e/32.png) [@deanoj](https://discourse.cakephp.org/u/deanoj)\
**Post date:** [January 23, 2019, 3:12pm UTC](https://discourse.cakephp.org/t/pagination-how-to-disable-count-query/5519/6 "2019-01-23T15:12:16Z")

</div>

I encountered a similar issue while paging results for data views to sync data with devices. The $query-\>count() function in paginator was taking 500ms to do the count so was a big performance hit over hundreds of pages.

My solution was to roll my own pagination, passing in values for page/limit into a finder. I can then use another finder to retrieve the count - and this time cache the results where ever needed.

This resulted in a huge performance boost and removed 90% of the load on the server as well.

---

<div class="post-metadata">

**Author:** ![ADmad](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.cakephp.org/admad/32/20_2.png) [@ADmad](https://discourse.cakephp.org/u/ADmad)\
**Post date:** [January 24, 2019, 4:20pm UTC](https://discourse.cakephp.org/t/pagination-how-to-disable-count-query/5519/7 "2019-01-24T16:20:32Z")

</div>

> Easy, not use Totatal count at all.

The core paginator cannot work without a total count, so you will have to roll your own.

---

<div class="post-metadata">

**Author:** ![Ruslan](https://avatars.discourse-cdn.com/v4/letter/r/2bfe46/32.png) [@Ruslan](https://discourse.cakephp.org/u/Ruslan)\
**Post date:** [January 24, 2019, 5:00pm UTC](https://discourse.cakephp.org/t/pagination-how-to-disable-count-query/5519/8 "2019-01-24T17:00:29Z")

</div>

I understand it.  
Thank you.  
@ADmad Interesting , How do you use Paginator on your “big tables” ? Or maybe, What is max roes cont when you use Paginator?

---

<div class="post-metadata">

**Author:** ![Zuluru](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.cakephp.org/zuluru/32/1230_2.png) [@Zuluru](https://discourse.cakephp.org/u/Zuluru)\
**Post date:** [January 24, 2019, 11:37pm UTC](https://discourse.cakephp.org/t/pagination-how-to-disable-count-query/5519/9 "2019-01-24T23:37:40Z")

</div>

Seems to me that if you’ve got a table with even thousands of rows, pagination is often not the best approach, and should be replaced with things like searches and autocomplete.
