Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 使用时间戳的主键+;古德_Mysql_Performance_Indexing_Primary Key - Fatal编程技术网

Mysql 使用时间戳的主键+;古德

Mysql 使用时间戳的主键+;古德,mysql,performance,indexing,primary-key,Mysql,Performance,Indexing,Primary Key,我有大量数据,如果我将epoc+guid与guid+epoc作为主键,那么索引性能会有所不同吗?因为epoc是经过排序的。严格来说,主键是一个逻辑概念,而不是一个物理概念,但它通常使用索引(这是一个物理概念)实现。在InnoDB上,该索引将影响数据的存储顺序。这意味着,当写入表时,如果主键值没有整齐地附加到末尾,它将不得不按照主键的顺序对数据重新排序 因此,只要epoc反映将数据写入磁盘的时间,使用epoc+guid应该比使用guid+epoc快得多。如果epoc是其他价值——商业交易日期、出生

我有大量数据,如果我将epoc+guid与guid+epoc作为主键,那么索引性能会有所不同吗?因为epoc是经过排序的。

严格来说,主键是一个逻辑概念,而不是一个物理概念,但它通常使用索引(这是一个物理概念)实现。在InnoDB上,该索引将影响数据的存储顺序。这意味着,当写入表时,如果主键值没有整齐地附加到末尾,它将不得不按照主键的顺序对数据重新排序

因此,只要epoc反映将数据写入磁盘的时间,使用epoc+guid应该比使用guid+epoc快得多。如果epoc是其他价值——商业交易日期、出生日期等等——那么差异就更难预测了


由于guid被保证是唯一的,我不确定您为什么想要guid+epoc。

严格来说,主键是一个逻辑概念,而不是物理概念,但它通常使用索引(这是一个物理概念)实现。在InnoDB上,该索引将影响数据的存储顺序。这意味着,当写入表时,如果主键值没有整齐地附加到末尾,它将不得不按照主键的顺序对数据重新排序

因此,只要epoc反映将数据写入磁盘的时间,使用epoc+guid应该比使用guid+epoc快得多。如果epoc是其他价值——商业交易日期、出生日期等等——那么差异就更难预测了


由于guid被保证是唯一的,我不知道为什么您会想要guid+epoc。

插入:guid+epoc会稍微慢一些。当表的大小超过缓冲池所能容纳的大小时,它将变得慢得多

选择
:如果您倾向于只访问“最近”的数据,那么epoc+guid可能会快得多。(“参考位置”)

如果您使用“Type1”UUID并洗牌位,那么您将在单个字段中获得这两个特性(唯一性和时间顺序)。(越小越好。)更多:另外,MySQL 8具有相同的功能


为了进一步讨论,请提供数据类型、数据大小以及插入/选择/更新/删除的类型。

INSERT
:guid+epoc会稍微慢一些。当表的大小超过缓冲池所能容纳的大小时,它将变得慢得多

选择
:如果您倾向于只访问“最近”的数据,那么epoc+guid可能会快得多。(“参考位置”)

如果您使用“Type1”UUID并洗牌位,那么您将在单个字段中获得这两个特性(唯一性和时间顺序)。(越小越好。)更多:另外,MySQL 8具有相同的功能

为了进一步讨论,请提供数据类型、数据大小以及插入/选择/更新/删除的类型