一个关于MySql性能的问题!

hardheart 2003-07-06 04:25:38

有两个MySql数据库分别运行在两台硬件配置相同的FreeBsd主机上(1G内存,PIII 800 CPU)。这两个数据库中的数据是一样的,因为其中一个数据库的数据是从另一个拷贝而来的。这两台FreeBsd主机上均主要运行MySql数据库服务器。可是发现新装的MySql服务器性能似乎不如原来的服务器,当进行大量数据查询时可以明显感觉到新的MySql服务器速度比较慢。这里用A代表原有的服务器,B代表拷贝A所有数据的新MySql服务器(MySql的版本均为3.23)。两个MySql的配置文件均为,

user=mysql
port=3306
socket=/tmp/mysql.sock
skip-name-resolve
log-bin=binary_log
log-slow-queries
set-variable = connect_timeout=10
set-variable = key_buffer=384M
set-variable = table_cache=1024
set-variable = sort_buffer=32M
set-variable = record_buffer=32M
set-variable = tmp_table_size=64M
set-variable = max_connections=1200

于是用top命令进行简单的观察,发现原有服务器A在内存中的空间是“368M”,
PID USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND
42110 mysql 2 -10 464M 368M RUN 203.9H 95.17% 95.17% mysqld

而新服务器B在内存中的空间是”44524K“,比A相差很多,
PID USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND
1175 mysql 2 -10 407M 44524K poll 4:02 0.00% 0.00% mysqld

请问,1。会不会是这个原因使得B的运行速度变得比较慢?
2。如果是这个原因,怎样才能增大B的“RES”空间呢?

...全文
24 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
hardheart 2003-07-09
  • 打赏
  • 举报
回复
谢谢苦丁和心帆,我也感觉到RES是在慢慢变化,总体上是在增大!可以不可以认为随着B的频繁使用,它所占有的RES会越来越大,于是速度也会越来越快?如果是这样的话,那也不错,我就可以等着瞧好了 ;-) 如果不是的话,B怎样才能可A一样呢?

谢谢二位!让我看看怎么给分先!
swotcoder 2003-07-09
  • 打赏
  • 举报
回复
3.23随偶也加入了 :)
不是4.x的专利!
hardheart 2003-07-09
  • 打赏
  • 举报
回复
哦,对了,刚才看了下手册发现"查询缓冲"是4.0以后才引入的.而我的A和B均为3.23.
swotcoder 2003-07-08
  • 打赏
  • 举报
回复
查询缓冲是在频繁查询的时候才会慢慢积攒的,不是人为地造出来。不能!
hardheart 2003-07-08
  • 打赏
  • 举报
回复
我同意swotcoder的意见,因为两台机器都是同一版本的FreeBSD,所以我也认为直接拷贝数据库文件是可以的!昨天又观察了一翻,新装的服务器的常驻物理内存是可以变大的,如果作一个大的连接查询。可是一旦查询结束,RES又会变得很小,大量的内存没有得到充分的利用!而老的服务器的RES基本上不会变,即使当前没有查询也会保持在300M以上!所以在老的服务器上的查询一直很快!

怎么才能让新的服务器占用更多的物理内存呢???会和操作系统有关吗?两台机器可是同一版本的FreeBSD啊!
shuixin13 2003-07-08
  • 打赏
  • 举报
回复
:)
是的,
正如 swotcoder(苦 丁) 兄所述

B 服务器速度慢是因为它的查询缓冲较小,
建议你看一下 MySQL 参考手册的第六章最后一节 查询缓冲
hardheart 2003-07-07
  • 打赏
  • 举报
回复
Anybody has any idea?
swotcoder 2003-07-07
  • 打赏
  • 举报
回复
>多半myisam数据结构不符合

他的硬件是相同的,所以不会出现这种问题。直接拷贝文件以及使用数据倒入对这种情况是没有任何区别。

之所以慢,完全是因为查询缓存在作怪!!
swotcoder 2003-07-07
  • 打赏
  • 举报
回复
>多半myisam数据结构不符合

他的硬件是相同的,所以不会出现这种问题。直接拷贝文件以及使用数据倒入对这种情况是没有任何区别。

之所以慢,完全是因为查询缓存在作怪!!
141242 2003-07-07
  • 打赏
  • 举报
回复
在linux下mysql对服务器的硬件依赖性比较大,如果是“其中一个数据库的数据是从另一个拷贝而来的”,多半myisam数据结构不符合,从而会导致所诉问题。正确的做法是通过导入导出功能,这样能够保证mysql数据库服务器的性能,而不能直接拷贝。
swotcoder 2003-07-07
  • 打赏
  • 举报
回复
查询缓冲新机器没老机器多,这就是主要问题,你说对了。

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧