小编rah*_*286的帖子

如果外键/级联删除不好,为什么要使用具有该功能的数据库服务器?

我注意到 wordpress/rails 等不使用外键约束或从数据库中级联删除功能。相反,他们在 PHP/Ruby/脚本级别处理这个!

我已经阅读了这个这个。大多数反对外键约束的论点都涉及性能、多线程、锁定、可伸缩性等。

假设反对外键的论点是有效的,我的问题是:

  1. 如果外键不好,为什么 WordPress/Rails/etc 使用支持外键的 sql-server?他们会从 MySQL 转向 NoSQL 类型的服务器吗?
  2. 另一方面,应用程序能否以某种方式编码以利用外键功能而不会遇到问题?
  3. 如果我们仅将数据库用于应用程序/脚本层的存储和管理“关系”,那么 noSQL/redis 会更好吗?

mysql nosql foreign-key referential-integrity

8
推荐指数
1
解决办法
9292
查看次数

table_cache 命中率有什么问题?

my.cnf我有:

table_cache            = 524288
open_files_limit        = 65535
Run Code Online (Sandbox Code Playgroud)

两者都处于 mysql 配置的最大允许值。两者都小于最大打开文件限制:

# cat /proc/sys/fs/file-max
2097152
Run Code Online (Sandbox Code Playgroud)

MySQL 变量状态:

mysql> SHOW GLOBAL STATUS LIKE 'open%';
+--------------------------+--------+
| Variable_name            | Value  |
+--------------------------+--------+
| Open_files               | 193    |
| Open_streams             | 0      |
| Open_table_definitions   | 594    |
| Open_tables              | 802    |
| Opened_files             | 537248 |
| Opened_table_definitions | 4895   |
| Opened_tables            | 9174   |
+--------------------------+--------+
7 rows in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)

服务器有 32GB 内存。大部分免费!

尽管如此,当我运行 mysqltuner 脚本时:

它说: …

mysql performance optimization my.cnf cache

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