Php 除非你是Facebook,否则你不太可能拥有超过100万的用户。这100万用户中的大多数不会选择任何人作为他们的最爱(因为大多数是不使用该功能的临时用户)

Php 除非你是Facebook,否则你不太可能拥有超过100万的用户。这100万用户中的大多数不会选择任何人作为他们的最爱(因为大多数是不使用该功能的临时用户),php,mysql,sql,database,denormalization,Php,Mysql,Sql,Database,Denormalization,因此,您看到的是一个只有两列的非常小的表(例如,如果您的1M用户平均有1个收藏夹,则最多有1M行,尽管大多数用户根本不使用该功能)。通过使主键以最常用的搜索对象开始,您可以潜在地改进innodb中的扫描,但是-明白了-您仍然可以在另一个索引上添加辅助索引,并获得合理的查找时间(实际上,非常快,因为表将装入最小服务器上的内存中!)在方法2中执行查找将非常缓慢(您必须解析每个ID并单独查找),并且您无法对其执行普通连接,因此任何类型的报告都可能无法执行。所以你只想显示ID,而不是对收藏夹的有意义的描

因此,您看到的是一个只有两列的非常小的表(例如,如果您的1M用户平均有1个收藏夹,则最多有1M行,尽管大多数用户根本不使用该功能)。通过使主键以最常用的搜索对象开始,您可以潜在地改进innodb中的扫描,但是-明白了-您仍然可以在另一个索引上添加辅助索引,并获得合理的查找时间(实际上,非常快,因为表将装入最小服务器上的内存中!)

在方法2中执行查找将非常缓慢(您必须解析每个ID并单独查找),并且您无法对其执行普通连接,因此任何类型的报告都可能无法执行。所以你只想显示ID,而不是对收藏夹的有意义的描述?同意@Robert;但除此之外,很难看到“谁更喜欢我?”@Robert Harvey事实上,我正在考虑构建一个类似
的字符串,其中id=$split_value
,并将其放置在foreach循环中,在该循环中我正在运行分解的CSV数组。这样,我就可以将它附加到我将要构建的SELECT sql的末尾。通过这种方式,SQL在php中构建,在执行之前是一个查询。它更直接、更快、更好的实践,如果您仍然需要,构建CSV ID列表也相对简单。
id | user_favorited_id | user_favoriting_id
-------------------------------------------
id | username | password | email | account_status | timestamp | favorites
--------------------------------------------------------------------------