在任何以唯一自动增量字段形式保存用户记录的给定数据库中(例如,用户间消息)......当时间到来并且接近最大有符号或无符号数时该怎么办当前数据类型?(一个 32 位的 INT)?我猜测数据库服务器在尝试将 (2?32)-1 数字分配给下一个条目时会溢出,因此,如何避免这种情况发生(为了问题而无需更改数据类型)和继续添加记录?你会怎么办?
为什么我要使用 INT 而不是,例如,VARCHARS?
自从我问自己这个假设性问题以来已经好几天了,我想知道专业人士会做什么。
我是Moodle站点的管理员,该站点的用户表已损坏并且无法使用。
幸运的是,一个简单的方法REPAIR TABLE mdl_user使它再次工作。问题是我不知道为什么它实际上崩溃并使其无法使用,我想确保下次我有更好的准备。
我不是一个经验丰富的 DBA——我只是一个做很多事情的开发人员,所以请耐心等待。
我可以只恢复备份,但我想有办法防止崩溃。
这些表是 utf8_general_ci 并使用 MyISAM。
为什么 MySQL 表会崩溃?我能做些什么来防止这种情况发生?
我在工作中被要求多次违反第一范式(跨列重复组,使用空/空值),“为了计算机处理能力”。简而言之,一个“学生”表应该至少有 8 个空字段(例如电话:telephone1、telephone2、telephone3...)而不是我的建议 - 一个包含电话号码(和可能的其他元数据)的“电话”表外键是学生证号。我的老板说最好以这种方式存储它们,因为“CPU 周期更少,这在 Web 平台中很重要”,而不是使用关系。我说,在最坏的情况下,它可以忽略不计。
在那个例子中,使用关系(假设在一个中等规模的 web 应用程序中用大量记录填充表)明显比使用那种表模式慢?