sql - mysql select count(*) with where scan full table? -


i have innodb table 100m records this:

id    name   pid cid createdat int   char   int int timestamp 

id pk, , pid indexed: key

the query select count(*) table1 pid='pid'

my question query full table scanning?

count(*) want.

the count function counts rows not null, count(name) counts records name field not null example. if field being counted not indexed results in full table scan.

in case of count(*) database counts records have @ least 1 non null field, ie excludes records of fields null. might want, people incorrectly use form when want count of records regardless of content.

the efficient way of counting of records without database specific syntax count(1). works because value 1 not null every record, , not require data read database.


Comments

Popular posts from this blog

ubuntu - PHP script to find files of certain extensions in a directory, returns populated array when run in browser, but empty array when run from terminal -

php - How can i create a user dashboard -

javascript - How to detect toggling of the fullscreen-toolbar in jQuery Mobile? -