【发布时间】:2020-03-09 08:51:40
【问题描述】:
假设有一个表table_test,表中有大约1000万行数据。我想添加一个像key 这样的auto_increment 字段来做一些分页工作。让它发挥作用的最佳方法是什么?
表格结构如下:
# table_test
+---------------------------------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------------------------------------+--------------+------+-----+---------+-------+
| ad_id | int(64) | NO | PRI | NULL | |
| account_id | varchar(64) | YES | MUL | NULL | |
| country | varchar(64) | NO | PRI | NULL | |
| image_hash | varchar(64) | YES | | NULL | |
+---------------------------------------+--------------+------+-----+---------+-------+
| table_test | CREATE TABLE `table_test` (
`ad_id` int(11) NOT NULL,
`account_id` varchar(64) DEFAULT NULL,
`country` varchar(64) NOT NULL,
`image_hash` varchar(64) DEFAULT NULL,
PRIMARY KEY (`id`,`country`),
KEY `account_id` (`account_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 |
更新:
将id 更改为ad_id,ad_id 与字段country 一起是唯一键,因此ad_id 本身可能重复。
【问题讨论】:
-
Id 有重复项?
-
@Nae 是的,这里的意思是
ad_id,和country一起是独一无二的。我已经更新了我上面的问题 -
根本没有回答所提出的问题,而是根据看到的最后一行进行分页。嗯,下一页是 last_seen=something & rows = 10 你可以保留这个结构。缺点是复制看起来不会对这种结构有效
-
@exussum 感谢您的回复,但我不完全理解您的建议。你能帮我说清楚吗?
标签: mysql