MySQL(InnoDB): Guid as Primary Key for a Distributed Database

标签 mysql database innodb

我来自 MSSQL 世界,没有 MySQL 方面的专业知识。

在这两个不同的 RDBM 系统中可以将 GUID 作为主键。在 MSSQL 中,我最好做一些事情,以免随着行数增加(数百万行)而陷入性能噩梦。

我将主键创建为非聚集索引,以防止在插入新行时数据库页面发生更改。如果我不这样做,系统将在某些现有行之间插入该行,并且为了做到这一点,硬盘驱动器需要找到光盘上页面的正确位置。我创建了数字类型的第二列,这次作为聚集索引。这保证了新行将在插入时附加。

问题

但是我如何在 MySQL 中做到这一点?如果我的information是的,我不能强制 mysql 使用非聚集主键。这是必要的还是 MySQL 存储数据的方式不会导致以后的性能灾难?

更新:但是为什么呢?

我之所以要这样做是因为我希望能够实现一个分布式数据库。

最佳答案

我最终使用了 Sequential GUID,如

中所述

CodeProject: GUIDs as fast primary keys under multiple databases .

表现出色!

关于MySQL(InnoDB): Guid as Primary Key for a Distributed Database,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32974701/

相关文章:

php - 将多个表的查询数据放入一个html表中

mysql - 在 CodeIgniter 中使用现有的 MySQL 数据库

android - 如何将占用大量内存的大型数据库从 Assets 文件夹复制到我的应用程序?

mysql - 为删除的数据设计表

mysql - Magento 2.2.6/var/lib/mysql/文件夹占用 43 GB 磁盘空间

MySQL 不使用索引(尽管有 FORCE INDEX)

mysql - 允许 NULL 的 InnoDB 索引大小 (MySQL)

php - GROUP_CONCAT 创建下拉列表

mysql - PostgreSQL 'schema' 的 MySQL 等价物是什么?

mysql - 如何比较父表和子表