Re: Performance for how many columns to update?
| From: | Leif K-Brooks | Date: | Sun, 10 Nov 2002 18:44:46 +0000 |
| Subject: | Re: Performance for how many columns to update? | ||
| References: | 1 | Groups: | php.db |
| Request: | Send a blank email to php-db+get-23191@lists.php.net to get a copy of this message | ||
Yes, I know that one query is more efficient than 3, but I'm trying to do a mysql_fetch_array that automatically changes the row at the end of the script if it has changed. I'm trying to decide whether to make it only update the changed rows or be lazy and make it update them all if only 1 has changed.
Peter Beckman wrote:
Straight from the MySQL Documentation, which is where you should look first always: http://www.mysql.com/documentation/mysql/bychapter/manual_MySQL_Optimisation.html#Update_speed 5.2.10 Speed of UPDATE Queries Update queries are optimised as a SELECT query with the additional overhead of a write. The speed of the write is dependent on the size of the data that is being updated and the number of indexes that are updated. Indexes that are not changed will not be updated. Also, another way to get fast updates is to delay updates and then do many updates in a row later. Doing many updates in a row is much quicker than doing one at a time if you lock the table. Note that, with dynamic record format, updating a record to a longer total length may split the record. So if you do this often, it is very important to OPTIMIZE TABLE sometimes. See section 4.5.1 OPTIMIZE TABLE Syntax. If you aren't doing an update of 50K per row, updating 3 columns instead of 1 will be "much quicker" (quoted from the manual). If you are doing 10,000 updates, read more of the manual on the syntax of UPDATE because you can delay your updates which allows MYSQL to update the table at its leisure which offers better performance. Peter, who reminds you to always read the manual (or less kindly RTFM!). On Sun, 10 Nov 2002, Leif K-Brooks wrote:-- The above message is encrypted with double rot13 encoding. Any unauthorized attempt to decrypt it will be prosecuted to the full extent of the law.I'm wondering how significant the performance differences between: mysql_query("update table set col1='val1' where whatever='whatever'"); and mysql_query("update table set col1='val1',col2='val2',col3='val3'... where whatever='whatever'"); -- The above message is encrypted with double rot13 encoding. Any unauthorized attempt to decrypt it will be prosecuted to the full extent of the law. -- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php---------------------------------------------------------------------------Peter Beckman Systems Engineer, Fairfax Cable Access Corporation beckman@purplecow.com http://www.purplecow.com/---------------------------------------------------------------------------