Mysql – difference between SELECT * FROM table and SELECT * FROM table WHERE 1

MySQLphpmyadmin

What is difference between SELECT * FROM table and SELECT * FROM table WHERE 1

Query 1:

 SELECT * FROM table
  1. Number of records : 103
  2. Load time : 0.0005 sec

Query 2:

 SELECT * FROM table WHERE 1 
  1. Number of records : 103
  2. Load time : 0.0003 sec

Question 1 : What is the difference between these 2 queries, if it
loads the same data.

Question 2 : Why there is these much time difference, if it loads the
same data.

Question 3 : Why phpmyadmin by default loads SELECT * FROM table WHERE 1 query ?

Question 4 :What MySQL do for ABOVE queries in MySQL Query Caching?


Note :

  • The difference is minor here because number of records are small
    (103),

but when number of records increases then time difference is also
increase.

– So let's when we have 100000 number of records then we can see
notable time difference.

Best Answer

Question 1 : What is the difference between these 2 queries, if it loads the same data.

None.

Question 2 : Why there is these much time difference, if it loads the same data.

Within margin of error and your first query may have put them in a cache making it slightly faster.

Question 3 : Why phpmyadmin by default loads SELECT * FROM table WHERE 1 query ?

Because it's a bit special. There are many odd behaviors of what phpMyAdmin manipulates queries in a browser to before it gets to SQL. Programmatic convenience maybe.

Question 4 :What MySQL do for ABOVE queries in MySQL Query Caching?

Query caching is based on the literal text of the query, and some session variables. They would be cached differently. PS. Query cache is evil.