Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用一本书的索引比翻页查找要容易得多_Php_Mysql_Unique - Fatal编程技术网

Php 使用一本书的索引比翻页查找要容易得多

Php 使用一本书的索引比翻页查找要容易得多,php,mysql,unique,Php,Mysql,Unique,您可能还希望为非键列编制索引,以便在该列上搜索时获得更好的性能。WHERE子句中经常使用哪一列?也许应该把它编入索引 唯一索引是一个索引,其中所有值必须是不同的。具有唯一索引的列不允许您插入重复值,因为它会违反唯一约束。主键是唯一的索引。但唯一索引不必是主键,甚至不必是键 希望有帮助 [为简洁而编辑]具有唯一约束是一件好事,因为它可以防止在程序出现错误(select语句中是否缺少“for update”子句?)或有人插入不使用应用程序的数据时插入重复条目 但是,您不应该在应用程序中依赖它来进行正

您可能还希望为非键列编制索引,以便在该列上搜索时获得更好的性能。WHERE子句中经常使用哪一列?也许应该把它编入索引

唯一索引是一个索引,其中所有值必须是不同的。具有唯一索引的列不允许您插入重复值,因为它会违反唯一约束。主键是唯一的索引。但唯一索引不必是主键,甚至不必是键

希望有帮助


[为简洁而编辑]

具有唯一约束是一件好事,因为它可以防止在程序出现错误(select语句中是否缺少“for update”子句?)或有人插入不使用应用程序的数据时插入重复条目

但是,您不应该在应用程序中依赖它来进行正常操作。让我们假设unique_name是用户可以指定的输入字段。应用程序应检查名称是否唯一。如果是,请插入它。如果不是,请告诉用户


在所有情况下都尝试插入并查看是否成功是一个坏主意:它将在数据库服务器日志中创建错误,从而更难找到真正的错误。而且它会使当前事务变得无用,这可能是一个问题,具体取决于具体情况。

具有唯一约束是一件好事,因为它可以防止在程序出现错误时插入重复的条目(select语句中是否缺少“for update”子句?)或者如果有人插入了不使用您的应用程序的数据

但是,您不应该在应用程序中依赖它来进行正常操作。让我们假设unique_name是用户可以指定的输入字段。应用程序应检查名称是否唯一。如果是,请插入它。如果不是,请告诉用户


在所有情况下都尝试插入并查看是否成功是一个坏主意:它将在数据库服务器日志中创建错误,从而更难找到真正的错误。这将使您当前的事务变得无用,这可能是一个问题,具体取决于具体情况。

这是一个关于mysql引擎的理论问题,有一个简单的查询示例。问题不在于任何身份验证系统,而在于优化自动管理mysql数据库的框架。谢谢你的回复。Wiliam是我的名字:)这是一个关于mysql引擎的理论问题,有一个简单的查询示例。问题不在于任何身份验证系统,而在于优化自动管理mysql数据库的框架。谢谢你的回复。Wiliam是我的名字:)@nhnb:这就是我需要在之前做检查的原因,以显示正确的错误。检查是自动完成的,所以它必须在那里是或是。这就是我问唯一密钥是否比普通密钥快的原因。@nhnb:这就是我之前需要进行检查的原因,以显示正确的错误。检查是自动完成的,所以它必须在那里是或是。这就是我问UNIQUE key是否比普通key快的原因。@cahitbox:好的,你在消息的前半部分回答了我,我更喜欢在之前做检查,因为所有查询都由一个框架管理,这样我就可以知道我添加的值是否是唯一的,比如从时间戳+ip+布兰妮的歌曲创建的md5哈希,所以我可以阻止做检查。因此,我需要显示一个正确的用户端错误。Thanks@cahitbox:好的,你在消息的前半部分回答了我,我更喜欢在之前进行检查,因为所有查询都由一个框架管理,这样我就可以知道我添加的值是否唯一,比如从时间戳+ip+布兰妮·斯皮尔斯的歌曲创建的md5哈希,这样我就可以阻止进行检查。因此,我需要显示一个正确的用户端错误。谢谢
SELECT COUNT(id) 
  FROM users 
 WHERE unique_name = 'Wiliam'

// if Wiliam don't exists then...

INSERT INTO users 
   SET unique_name = 'Wiliam'