Is there a way to determine whether a mysql index fits entirely in available memory? If so, how would I:
- Determine size of mysql indexes
- Determine available memory for the application
- Determine if the indexes fit entirely in memory
Is there a way to determine whether a mysql index fits entirely in available memory? If so, how would I:
Depends on Storage Engine
MyISAM (Caches Index Pages From .MYI files)
Subtract that from
key_buffer_size
. If the answer > 0, then YesInnoDB (Caches Data and Index Pages)
Subtract that from
innodb_buffer_pool_size
. If the answer > 0, then YesI wrote about this in the DBA StackExchange
On a dedicated DB Server, make sure
InnoDBSizeMB+IndexSizesMB
does not exceed 75% of RAM.To find memory available to MySQL, look in
my.cnf
, likely located at:/etc/mysql/my.cnf
To find size of indexes for a table:
SHOW TABLE status FROM [DBNAME]