MySQL (InnoDB): Guid 作为分布式数据库的主键
MySQL ( InnoDB): Guid as Primary Key for a Distributed Database
我来自 MSSQL 世界,在 MySQL 方面没有专业知识。
在这两个不同的 RDBM 系统中将 GUID 作为主键是可能的。在 MSSQL 中,我最好做一些事情,以免 运行 随着行数的增加(数百万行)而陷入性能噩梦。
我将主键创建为非聚集索引,以防止在插入新行时数据库页面发生变化。如果我不这样做,系统会在一些现有行之间插入该行,为了做到这一点,硬盘驱动器需要在光盘上找到页面的正确位置。我创建了第二个数字类型的列,这次是作为聚簇索引。这保证了新行将在插入时附加。
问题
但是我如何在 MySQL 中执行此操作?如果我的 information 是正确的,我不能强制 mysql 到非集群主键。这是必要的还是 MySQL 以不会导致性能灾难的方式存储数据?
更新:但为什么呢?
我之所以要这样做是因为我希望能够实现一个分布式数据库。
我最终使用了
中描述的顺序 GUID
CodeProject: GUIDs as fast primary keys under multiple databases.
很棒的表现!
我来自 MSSQL 世界,在 MySQL 方面没有专业知识。
在这两个不同的 RDBM 系统中将 GUID 作为主键是可能的。在 MSSQL 中,我最好做一些事情,以免 运行 随着行数的增加(数百万行)而陷入性能噩梦。
我将主键创建为非聚集索引,以防止在插入新行时数据库页面发生变化。如果我不这样做,系统会在一些现有行之间插入该行,为了做到这一点,硬盘驱动器需要在光盘上找到页面的正确位置。我创建了第二个数字类型的列,这次是作为聚簇索引。这保证了新行将在插入时附加。
问题
但是我如何在 MySQL 中执行此操作?如果我的 information 是正确的,我不能强制 mysql 到非集群主键。这是必要的还是 MySQL 以不会导致性能灾难的方式存储数据?
更新:但为什么呢?
我之所以要这样做是因为我希望能够实现一个分布式数据库。
我最终使用了
中描述的顺序 GUIDCodeProject: GUIDs as fast primary keys under multiple databases.
很棒的表现!