我已经看到一些专用的 MySQL 服务器,它们只使用一个内核。我比 MySQL 的 DBA 更擅长开发,所以需要一些帮助
服务器非常庞大,具有 OLAP/DataWarehouse (DW) 类型的负载:
注意:最大的 DB 是从 OLTP DR 服务器复制的 DB,DW 就是从这里加载的。它不是完整的 DW:仅持续 6 个月到 6 周,因此它比 OLTP DB 小。
ALTER TABLE...DROP KEY...ADD INDEXH2 是一个单线程数据库,在性能方面享有盛誉。其他数据库是多线程的。
我的问题是:多线程数据库什么时候变得比单线程数据库更有趣?有多少用户?多少个进程?什么是触发器?有人有经验可以分享吗?
概括
RAM 的重要性是一个既定的事实,但在 MySQL 使用 CPU 时,关于内核和多线程重要性的资料要少得多。我说的是在 4cores vs 6cores vs 8cores 上运行 MySQL 的区别等等。
不同的存储引擎使用 CPU 的方式不同吗?
这是一个纯理论问题。假设我在多台服务器上部署了一个应用程序。
在前两个部分,我知道要寻找什么。但是数据库服务器呢?我应该寻找什么样的硬件?
PS:假设选择的数据库是 MySQL 或 PostgreSQL。
我目前正在研究一个 MySQL 数据库,我们看到查询缓存中有大量无效,主要是因为在许多表上执行了大量的 INSERT、DELETE 和 UPDATE 语句。
我要确定的是,允许将查询缓存用于针对这些表运行的 SELECT 语句是否有任何好处。由于它们很快就失效了,在我看来,最好的办法是在这些表的 SELECT 语句上使用 SQL_NO_CACHE。
频繁失效的开销值得吗?
编辑:应以下用户@RolandoMySQLDBA 的要求,这里是有关 MyISAM 和 INNODB 的信息。
数据库
我的ISAM
附加信息:
首先让我承认我对硬盘的内部工作原理非常无知。因此,当我阅读变量innodb_flush_method的手册时,它让我感到困惑。我可以用外行的术语解释 O_DSYNC 和 O_DIRECT 的区别,以及如何知道这是否是数据库服务器上的性能问题。
我的设置的一些统计信息:运行 MySQL 5.1.49-64 位的 Mac OSX 10.6(32 位内核,因为架构已过时)(希望它能让我使用内存)。8GB RAM,~6GB innodb 数据/索引。
我们公司的服务器目前托管在 VPS 上,我们决定迁移到专用服务器。
在为数据库服务器选择最佳硬件时,我们应该投入更多资源:更好的 CPU(更多内核)?或更多的内存?
最佳投资回报率在哪里?
有什么建议?
我正在运行 1gb 的 RAM 机架空间数据库服务器。出于某种原因,在大约 2 天内,内存使用量从使用很少的交换变为使用 100mb。如果我不重新启动 sql,它将继续使用更多的交换。(我的 my.cnf 文件如下所示,内存使用情况如下所示)
一些背景:我有大约 50 个活动数据库,它们具有相同的模式,这些数据库使用 INNODB 来处理表。我有几个使用 MyISAM 的流量很少的数据库。
在 INNODB 表上,我不使用持久连接。我还有一个创建临时表的报告功能。(这可能是资源密集型的,但并不经常发生)
我正在使用 CENTOS 6.3 和 mysql 5.5.28-log
即使我使用的是swap,性能仍然相当不错。我只是担心如果我每隔几天不重新启动我就会出问题。
这是我大约 2 天的 free -m 日志:(第一条记录是在 mysql 重新启动后)
12/26 2:08 PM EST
total used free shared buffers cached
Mem: 992 697 295 0 74 362
-/+ buffers/cache: 260 732
Swap: 976 15 961
12/26 4:10 PM EST
[root@php-pos-db ~]# free -m
total used free shared buffers cached
Mem: 992 791 201 0 …Run Code Online (Sandbox Code Playgroud) 我们有一个 MySQL 5.0 服务器,以 MyISAM 的形式运行所有表。我们有两个奴隶,在上个月,我们已经升级到 MySQL 5.5。他们的表也仍然是 MyISAM。
我原来的计划是把5.0的master升级到5.5,然后转成InnoDB。现在我想知道,在升级之前开始是否更有意义?我一直很谨慎,因为我听说 5.5 下的 InnoDB 比 5.0 下的 InnoDB 快得多。这是没有根据的,我现在应该开始吗?