小编Der*_*ney的帖子

如何安全地更改 MySQL innodb 变量“innodb_log_file_size”?

所以我对调整 InnoDB 还很陌生。我正在慢慢地将表(在必要时)从 MyIsam 更改为 InnoDB。我在 innodb 中有大约 100MB,所以我将innodb_buffer_pool_size变量增加到 128MB:

mysql> show variables like 'innodb_buffer%';
+-------------------------+-----------+
| Variable_name           | Value     |
+-------------------------+-----------+
| innodb_buffer_pool_size | 134217728 |
+-------------------------+-----------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)

当我去更改innodb_log_file_size值时(例如mysql 的 innodb 配置页面my.cnf注释将日志文件大小更改为缓冲区大小的 25%。所以现在我的 my.cnf 看起来像这样:

# innodb
innodb_buffer_pool_size = 128M
innodb_log_file_size = 32M
Run Code Online (Sandbox Code Playgroud)

当我重新启动服务器时,出现此错误:

110216 9:48:41 InnoDB:初始化缓冲池,大小 = 128.0M
110216 9:48:41 InnoDB:缓冲池初始化完成
InnoDB:错误:日志文件 ./ib_logfile0 的大小不同 0 5242880 字节
InnoDB:比指定的.cnf 文件 0 33554432 字节!
110216 9:48:41 [错误] …

mysql innodb myisam logs

113
推荐指数
3
解决办法
21万
查看次数

功能表现

来自 MySQL 背景,其中存储过程性能(旧文章)可用性值得怀疑,我正在评估 PostgreSQL 为我公司的新产品。

我想做的一件事是将一些应用程序逻辑移到存储过程中,所以我在这里询问有关在 PostgreSQL (9.0) 中使用函数的 DO 和 DON'T(最佳实践),特别是关于性能陷阱。

postgresql best-practices plpgsql

63
推荐指数
4
解决办法
4万
查看次数

在实时数据库上运行 pg_dump 会产生一致的备份吗?

我有一个不断修改的 3GB 数据库,我需要在不停止服务器的情况下进行备份(Postgres 8.3)。

我的 pg_dump 运行了 5 分钟。如果数据在这个过程中被修改了怎么办?我可以获得一致的备份吗?我不想知道灾难何时发生。

Postgres 文档http://www.postgresql.org/docs/8.3/static/app-pgdump.html对此没有任何说明。

postgresql

51
推荐指数
3
解决办法
4万
查看次数

pg_stat_user_tables中n_live_tup和n_dead_tup是什么意思

n_live_tupand n_dead_tupin pg_stat_user_tablesor是什么意思pgstattuple

postgresql

26
推荐指数
1
解决办法
3万
查看次数

在同一台服务器上混合 InnoDB 和 MyISAM 表是常见的做法吗?

我有一个大约 4.5GB 的数据库在具有 8GB RAM 的服务器上运行。绝大多数表都是 MyIsam(大约 4.3GB),但我很快就会其中一些转换为 InnoDB。(这将是一个缓慢的过程,首先关注写入密集度最高的表)。

运行同时存在两种类型存储引擎的专用服务器有什么问题吗?

mysql innodb myisam storage-engine

25
推荐指数
2
解决办法
2万
查看次数

如何识别 InnoDB 表损坏?

我有一些已分区的表,并且在复制的从属设备上有多个索引。将快照(已验证安全)复制到新从属并将 mysqld 从 5.1.42 升级到 5.5.15 并重新启动复制后,我收到 InnoDB 崩溃并显示错误消息“无效指针...”

这些错误发生在具有不同硬件和操作系统的 2 个服务器上。运行后:

ALTER TABLE .... COALESCE PARTION n;

那张桌子的问题就消失了。

不过,我的问题范围更大,那就是“您如何识别 InnoDB 表损坏?” 或改写为“您如何评估 InnoDB 表的健康状况?” 是“检查表”可用于识别问题预碰撞唯一的工具?

不确定它是否重要,但运行时发生崩溃:版本:'5.5.15-55-log' 套接字:'/opt/mysql.sock' 端口:3306 Percona Server (GPL),版本 rel21.0,修订版 158

mysql innodb percona-server

25
推荐指数
3
解决办法
5万
查看次数

澄清 MySQL innodb_flush_method 变量

首先让我承认我对硬盘的内部工作原理非常无知。因此,当我阅读变量innodb_flush_method的手册时,它让我感到困惑。我可以用外行的术语解释 O_DSYNC 和 O_DIRECT 的区别,以及如何知道这是否是数据库服务器上的性能问题。

我的设置的一些统计信息:运行 MySQL 5.1.49-64 位的 Mac OSX 10.6(32 位内核,因为架构已过时)(希望它能让我使用内存)。8GB RAM,~6GB innodb 数据/索引。

mysql innodb

22
推荐指数
1
解决办法
1万
查看次数

MySQL VARCHAR 和 TEXT 数据类型有什么区别?

在 5.0.3 版本之后(允许 VARCHAR 为 65,535 字节并停止截断尾随空格),这两种数据类型之间有什么主要区别吗?

我正在阅读差异列表,只有两个值得注意的是:

对于 BLOB 和 TEXT 列上的索引,您必须指定索引前缀长度。对于 CHAR 和 VARCHAR,前缀长度是可选的。请参阅第 7.5.1 节,“列索引”。

BLOB 和 TEXT 列不能有 DEFAULT 值。

那么,由于 TEXT 数据类型的这两个限制,为什么要在 varchar(65535) 上使用它?两者之间是否存在性能影响?

mysql database-design datatypes

21
推荐指数
1
解决办法
4万
查看次数

列名命名约定和最佳实践

当涉及到列命名时,我想要一些关于最佳实践的专家意见。

背景是,根据维基百科,以下语法,

SELECT ... FROM Employees JOIN Timesheets USING (EmployeeID);
Run Code Online (Sandbox Code Playgroud)

SELECT ... FROM Employees JOIN Timesheets ON (Employees.EmployeeID = Timesheets.EmployeeID);
Run Code Online (Sandbox Code Playgroud)

但是,该JOIN ... USING语法仅适用于所有具有全局唯一名称的主键列。因此,我想知道这是否被认为是正确的做法。

就个人而言,我总是使用 PK columnid和外键 column来创建表othertable_id。但那样就不可能使用USINGor 了NATURAL JOIN

任何指向设计风格或表格设计最佳实践指南的链接也将不胜感激!

join database-design naming-convention

19
推荐指数
2
解决办法
7542
查看次数

可能对我的 SQL 服务器进行攻击?

检查我的 SQL Server 日志,我看到几个这样的条目:

Date: 08-11-2011 11:40:42
Source: Logon
Message: Login failed for user 'sa'. Reason: Password did not match for the login provided. [CLIENT: 56.60.156.50]
Date: 08-11-2011 11:40:42
Source: Logon
Message: Error: 18456. Severity: 14. State: 8.


Date: 08-11-2011 11:40:41
Source: Logon
Message: Login failed for user 'sa'. Reason: Password did not match for the login provided. [CLIENT: 56.60.156.50]
Date: 08-11-2011 11:40:41
Source: Logon
Message: Error: 18456. Severity: 14. State: 8.
Run Code Online (Sandbox Code Playgroud)

等等..这可能是中国人对我的 SQL Server 的攻击吗???!我在 ip-lookup.net 上查找了 IP 地址,它说它是中文的。 …

sql-server-2008 sql-server

15
推荐指数
5
解决办法
8458
查看次数