VPS主机上MySQL数据库的优化

标签: vps 主机 mysql | 发表时间:2014-11-06 04:20 | 作者:u011986449
出处:http://blog.csdn.net

概述:在linux vps主机上配置mysql数据库,由于默认使用yum安装的数据库启动了InnoDB引擎,同时其/etc/my.cnf配置都我们的vps主机不是很适合,本文详细讲解如何配置适合自己vps主机的mysql配置文件

目的:优化vps主机上的mysql数据库,使之更合适vps主机这样的环境

query_cache_size = 268435456
query_cache_type=1
query_cache_limit=1048576

查看mysql-server静态参数值命令
mysql>show variables;
或者mysqladmin -uroot variables
mysql服务器的参数很多,如果需要了解某个参数的详细定义,可以使用mysqld –verbose –help | more
查看mysql-server动态状态信息命令

mysql>show status;

或者mysqladmin -uroot status
其中show status分为show [session|global]status;可以根据需要加上参数“session”或者”global”来显示session级(当前统计)的统计结果和global级(自数据库上次启动至今)的统计结果,如果不写,默认为”session”

1、查看和修改默认的存储引擎,关闭不需要的存储引擎
在我们使用vps主机过程中,很多用户只使用MyISAM一个引擎,关闭那么没有使用的InnoDB MEMORY等其他引擎
查看当前系统有哪些引擎

mysql>SHOW ENGINES \G
或者第二种方法
mysql>SHOW VARIABLES LIKE 'have%';

查看默认引擎

mysql> show variables like 'table_type';
+---------------+--------+
| Variable_name | Value  |
+---------------+--------+
| table_type    | MyISAM |
+---------------+--------+
1 row in set (0.00 sec)
或者
mysql> show variables like 'storage_engine';
+----------------+--------+
| Variable_name  | Value  |
+----------------+--------+
| storage_engine | MyISAM |
+----------------+--------+
1 row in set (0.00 sec)

mysql默认的存储引擎是MyISAM,修改默认的存储引擎可以修改/etc/my.cnf参数文件,在[mysqld]字段里面增加default-storage-engine=innodb,这里假设设置默认为innodb,根据自己的需要进行设置,关闭不需要的存储引擎,可以修改/etc/my.cnf参数文件,在[mysqld]字段里面增加–skip-innodb。
2、调节key_buffer_size大小

mysql> show variables like 'key_buffer_size';
+-----------------+-----------+
| Variable_name   | Value     |
+-----------------+-----------+
| key_buffer_size | 402653184 |
+-----------------+-----------+
1 row in set (0.00 sec)
 
mysql>
从上面可以看到,key_buffer_size为:384M,可以修改/etc/my.cnf参数文件,在[mysqld]字段里面增加key_buffer_size = 384M,当然也可以使用mysql>set grobal key_buffer_size=512M修改。
此参数是用来<strong>设置索引块</strong>(Index Blocks)缓存的大小,它被所有的线程共享,只适合MyISAM存储引擎。

3、调节table_cache设置
这个参数表示数据库用户打开表的缓存数量,每个连接进来,都会至少打开一个表缓存,如此,table_cache与max_connections有关,
查看当前的table_cache值

mysql> show variables like 'table_cache';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| table_cache   | 4096  |
+---------------+-------+
1 row in set (0.00 sec)

从上面可以看到,table_cache为:4096,可以修改/etc/my.cnf参数文件,在[mysqld]字段里面增加table_cachee = 4096

4、调节query_cache设置

Query Cache 在提高数据库性能方面具有非常重要的作用,其设定也非常简单,仅需要在配置文件写入两行: query_cache_type 和 query_cache _size,而且 MySQL 的 query cache 非常快!而且一旦命中,就直接发送给客户端,节约大量的 CPU 时间。

当然,非 SELECT 语句对缓冲是有影响的,它们可能使缓冲中的数据过期。一个 UPDATE 语句引起的部分表修改,将导致对该表所有的缓冲数据失效,这是 MySQL 为了平衡性能而没有采取的措施。因为,如果每次 UPDATE 需要检查修改的数据,然后撤出部分缓冲将导致代码的复杂度增加。

query_cache_type :0 代表不使用缓冲, 1 代表使用缓冲,2 代表根据需要使用。

设置 1 代表缓冲永远有效,如果不需要缓冲,就需要使用如下语句:

SELECT SQL_NO_CACHE * FROM my_table WHERE …

如果设置为 2 ,需要开启缓冲,可以用如下语句:

SELECT SQL_CACHE * FROM my_table WHERE …

用 SHOW STATUS 可以查看缓冲的情况:

mysql> show status like 'Qca%';
+-------------------------+----------+
| Variable_name | Value |
+-------------------------+----------+
| Qcache_queries_in_cache | 8 |
| Qcache_inserts | 545875 |
| Qcache_hits | 83951 |
| Qcache_lowmem_prunes | 0 |
| Qcache_not_cached | 2343256 |
| Qcache_free_memory | 33508248 |
| Qcache_free_blocks | 1 |
| Qcache_total_blocks | 18 |
+-------------------------+----------+
8 rows in set (0.00 sec)

如果需要计算命中率,需要知道服务器执行了多少 SELECT 语句:

mysql> show status like 'Com_sel%';
+---------------+---------+
| Variable_name | Value |
+---------------+---------+
| Com_select | 2889628 |
+---------------+---------+
1 row in set (0.01 sec)

在本例中, MySQL 命中了 2,889,628 条查询中的 83,951 条,而且 INSERT 语句只有 545,875 条。因此,它们两者的和和280万的总查询相比有很大差距,因此,我们知道本例使用的缓冲类型是 2 。

而在类型是 1 的例子中, Qcache_hits 的数值会远远大于 Com_select 。 Qcache_not_cached是可以记录DML语句的数量的

作者:u011986449 发表于2014-11-5 20:20:23 原文链接
阅读:12 评论:0 查看评论

相关 [vps 主机 mysql] 推荐:

VPS主机上MySQL数据库的优化

- - CSDN博客数据库推荐文章
概述:在linux vps主机上配置mysql数据库,由于默认使用yum安装的数据库启动了InnoDB引擎,同时其/etc/my.cnf配置都我们的vps主机不是很适合,本文详细讲解如何配置适合自己vps主机的mysql配置文件. 目的:优化vps主机上的mysql数据库,使之更合适vps主机这样的环境.

如何挑选最适合自己的美国VPS主机商

- LingBo - Showfom&#39;s Blog
购买VPS已经快一年了,最这个行业也算是摸清了底细,最近很多朋友来询问我如何挑选合适的VPS主机,我就不一一回答,直接博文献上. 一、什么是VPS(Virtual Private Server). VPS(Virtual Private Server 虚拟专用服务器)技术,将一部服务器分割成多个相互隔离的虚拟专享服务器的优质服务.

极力推荐三家VPS主机:Linode,Hostigation和Frantech

- - 软矿
国外的VPS主机选择多到让人无从选择,质量参差不齐,今天笔者就个人VPS租用经验来说向大家推荐三家国外VPS:Linode,Hostigation和Frantech. 其中linode价格稍高,但是是笔者首先要推荐的,另外两家Hostigation和Frantech则是相对比较便宜VPS,但同时性能还相当不错.

Linux VPS 如何更改主机名,系统时间和命令提示符

- 董玉伟 - 深度VPS
1,更改 Linux VPS 主机名. (1)/etc/sysconfig/network文件,将HOSTNAME修改为要设置的主机名. hostname 要设置的主机名. 如果只设置了1,将在系统重启后使用新的主机名. 如果只设置了2,将在重新登录系统后看到新的主机名,但是重启系统后将恢复原主机名.

推荐 Linode VPS

- - Soulogic 灵魂逻辑
先说明,如果你因为看了这篇文章而有兴趣购买 Linode 的服务,请通过我的赞助链接购买,我会获得额外回报. 请转载的人不要更改我的链接,之前我看到有人转载我的文章后,把我本来指到豆瓣的链接改为某电商的链接,这很不道德. 我尝试的 VPS 并不多,但是碰到 Linode 觉得足够满意了,简单的说,Linode 的技术实力很强,是专业的 VPS 提供商.

vps安全设置

- - CSDN博客推荐文章
适合新手及才接触VPS的朋友们看一下,主要是关于VPS安全方面相关内容的. 禁止ROOT登陆 保证安全性;. 使用DDoS deflate简单防攻击;. iftop Linux流量监控工具;. 每日自动备份VPS到FTP空间;. 升级LNMP的NGINX到最新版. 找到其中的#Port 22(第13行),去掉#,修改成Port 3333.

目前发现的性价比最高的VPS: DigitalOcean VPS

- - Web 开发 : 从后端到前端
最近发现一家比 Linode 性价比更高的 VPS 提供商: DigitalOcean. 它是一家 NYC 成立的新的公司. 一般 NYC 的公司信誉和服务都很好. 很多人选择 Linode VPS 是因为它提供的 VPS 性能很强而且价格又便宜,并且服务很好. 我的很多网站都是放在 Linode 768 M 内存的服务器上的,每月的价格是 20 美元.

Linode VPS上搭建L2TP/IPSec服务

- hama - Pure Pleasure - Reborn
10个小时才折腾明白,真费劲啊. 慨叹1:想要学Linux,还真得买个像Linode这样的VPS,比自己弄台机器,或者自己弄个虚拟机好多了⋯⋯大不了Rebuild,几十秒之内就可以推倒从来⋯⋯(你要是决定购买Linode的VPS,在购买的时候不妨填写Referral Code:90e830ad0f9cccf433cbae2b24228d6c544a5b18,这样我能得到$20⋯⋯嘿嘿.

4个可以免费试用的VPS

- luckerme - 帕兰映像
VPS(Virtual Private Server 虚拟专用服务器)技术,即是指将一部服务器分割成多个虚拟专享服务器的优质服务. 一个VPS相当于一台计算机,可以用它搭建各种互联网服务,当然其中也包括SSH,VPN等在中国大有用处的服务. 下面介绍4个可以免费试用的VPS,希望能对你有所帮助. 第一个:NephoScale.

Linode VPS 迁移到日本 Tokyo IDC

- 半兽人 - DBA Notes
今天看到 Linode 针对亚太地区用户的需求新开辟了日本东京机房. 价格不变,速度会更快(地理优势),看了网友的反馈也是如此. 迁移 VPS,需要在后台 Support 处开一个 Ticket ,客服人员会在分钟级别提供响应,提供一个简单的指导,要你关掉 VPS , 点击迁移 , 然后耐心等待. 并且会告之你在东京机房的 IP 地址.