Gus*_*ooL 10 mysql primary-key
我总是将MySQL数据库主键视为整数.这是因为主键必须是整数,还是因为auto_increment在列上设置时易于使用?
我想知道以防万一我希望我的主键成为varchar未来.
Sar*_*raz 14
您可以使用varchar,只要您确保每个都是唯一的.但这并不理想(有关详细信息,请参阅下面的文章链接).
您正在寻找的是自然键,但是具有自动增量并由RDBMS处理的主键称为代理键,这是首选方式.因此,您需要将其设为整数.
学到更多:
Tod*_*obs 10
与字符串或复合键相比,使用整数进行索引通常更容易,因为它可以很好地将结果(在概念上或在实践中)作为数组处理.根据数据库实现,整数访问,排序或比较也可能更快,整数类型通常提供其他数据类型无法使用的自动递增功能.例如,您将如何自动递增复合键?
表的主键表示您在最重要的查询中使用的列或列集.它具有关联的索引,以实现快速查询性能.查询性能受益于NOT NULL优化,因为它不能包含任何NULL值.
SQL允许将任何非null,唯一列(或列集)用作主键.但是,如果您不关心自动递增,通常可以使主键成为UNIQUE和NOT NULL的索引.
虽然不是硬性要求,但某些框架针对整数主键进行了优化.例如,Ruby on Rails默认使用自动递增主键.如果你想使用不同的东西,你必须刻意违反惯例.
这并不意味着应该或不应该使用整数作为主键.它只是意味着主键的选择部分由您的底层数据库系统和您希望针对它运行的查询驱动,部分由您希望用于检索数据的应用程序驱动.在考虑候选键时应考虑所有这些因素.
| 归档时间: |
|
| 查看次数: |
11281 次 |
| 最近记录: |