视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
IncreasememoryusageforInnoDBMySQLdatabasetoimprovep_MySQL
2020-11-09 19:59:41 责编:小采
文档
 If your MySQL database tables still run on the MyISAM engine (formerly the default), you may want to consider switching to the InnoDB engine instead, for better reliability and scalability. To update a table from MyISAM to InnoDB you can run this SQL:

ALTER TABLE table_name ENGINE = InnoDB;

Once you’ve switched all your tables to InnoDB, you can adjust some memory usage settings.

Update MySQL memory usage settings for InnoDB

Firstly, check the current settings for innerdb_buffer_pool_size . You can view these settings by running the following SQL (you can run this in phpMyAdmin):

SHOW VARIABLES;

Look for innerdb_buffer_pool_size . You’ll see it’s been assigned a particular number of bytes. This allocated cache stores table and index data, and keeps queries and query results in memory for faster lookup. So the more memory you can afford to dedicate to it the better – MySQL recommends to use 80% of the available memory. You can read about it here .

I had 2GB of server memory to play with, so I chose a moderate 1GB to allocate to the innerdb_buffer_pool_size . To add this setting, we’ll create and load our own custom MySQL cnf file, which will house some extra settings.

On Linux Ubuntu , add a new cnf file here:

sudo nano /etc/mysql/conf.d/innodb.cnf

The file name must end in .cnf , but call it whatever you like, so long as it’s not clashing with another file name.

Inside of this file, we add our new memory allocation:

[mysqld]innodb_buffer_pool_size = 1024Mkey_buffer_size = 8M

I’ve also added a new key_buffer_size value of 8MB. If you’ve deprecated your use of the MyISAM engine, it’s recommended to reduce this memory allocation. Previously I had 16M for key_buffer_size , so I decided to half it.

Finish off by restarting MySQL so that the changes can be applied:

sudo service mysql restart

If you check the MySQL variables once more:

SHOW VARIABLES;

You’ll hopefully now have some new and importantly increased memory values for innodb_buffer_pool_size and key_buffer_size

You’ve successfully optimised your MySQL database a bit more!

下载本文
显示全文
专题