MySQL中的数组?
在MySQL中,提取数组的值通常比通过某种字符串操作更有效率。为了保持列表排序,应该在URL列上创建一个聚集索引。聚集索引是一种索引方法,将行按照索引的顺序物理上存放在磁盘上,这样可以提高查询效率。
然而,通常不建议将关系型数据库系统(RDBMS)与命令式编程语言进行类比。在像Java这样的语言中,数组访问速度快,而在集合中进行查找速度较慢。但是,RDBMS专门设计和优化了表引用的查询,并且在这方面表现出色。
关于在RDBMS中,列数组比表引用的查询更快的说法很可能是错误的。据我所知,MySQL不支持SQL规范中的列数组。而PostgreSQL和HSQLDB都支持列数组。
所以,对于在MySQL中使用数组的问题,应该将URL存储在一个单独的表中,并为URL列创建一个聚集索引,以确保查询的效率。
在MySQL中使用数组的问题出现的原因是,使用数组格式的数据库会在从中提取数据时引入大量的格式问题。为了解决这个问题,可以将数据分成两个或三个表,具体取决于用户名是否可以与相同的URL关联。如果不能(一对多的关系),可以构建两个表:USERS和URLS。如果URL可以有不同的用户(多对多的关系),则USERS表保持不变,但URLS表将增加一个USERURLS表来连接它们。这种方法重复的数据较少(只有整数而不是字符串),而且在以后扩展时更容易,比如如果想要添加地址、电话号码、密码等到用户名中。对于一对多的关系,这两种方法是一样的。对于数据中可能出现URL重复的情况,可以根据具体情况选择使用哪种方法。