草庐IT

unique_index

全部标签

mysql - 如何在没有 UNIQUE 索引或 PRIMARY KEY 的情况下在 MySQL 中使用 ON DUPLICATE KEY UPDATE?

MySQL手册指出:IfyouspecifyONDUPLICATEKEYUPDATE,andarowisinsertedthatwouldcauseaduplicatevalueinaUNIQUEindexorPRIMARYKEY如果您有一个没有UNIQUE索引或PRIMARYKEY的表,但您不想为列(比如user_id)复制一个条目怎​​么办。有没有办法在MySQL中做到这一点? 最佳答案 INSERTINTO`table`(value1,value2)SELECT'stuffforvalue1','stuffforvalue2'

php - 选择 DISTINCT 或 array_unique?

你认为什么更快?SELECTDISTINCT(user_id)FROMmyTable;然后获取到$myArray。或者SELECTuser_idFROMmyTable;然后获取到$myArray并执行$myArray=array_unique($myArray);注意:user_id是一个FOREIGNKEYCONSTRAINT 最佳答案 为了提高速度和内存效率,您希望从数据库中返回最少数量的数据,而不是为了处理/内存效率而放置不必要的行。因此,在这种情况下,distinct是更好的选择。

mysql - UNIQUE + INSERT IGNORE 如何工作?

我有这张表:CREATETABLE`recent_adds`(`id`INT(11)UNSIGNEDNOTNULLAUTO_INCREMENT,`trackid`INT(11)UNSIGNEDNOTNULL,`user`VARCHAR(255)NOTNULL,PRIMARYKEY(`id`))COLLATE='utf8_general_ci'而且我只想在trackd/user对尚未插入表中时插入数据。我知道有一种UNIQUE+INSERTIGNORE可以解决这种问题,但实际上我不太明白它是如何工作的。如果我执行此命令:ALTERTABLErecent_addsADDUNIQUEINDE

php - Sphinx_Query 失败 : no enabled local indexes to search

您好,我在我的测试服务器中配置了sphinx搜索。现在我收到这种错误“Sphinx_Query失败:没有启用本地索引来搜索”。我不明白为什么会出现这个错误。任何人都可以帮助我。这是我的sphinxsourceobjectcollection{type=mysqlsql_host=localhostsql_user=rootsql_pass=rootsql_db=mydatabasesql_port=3306sql_query=\SELECTid,idasmidobtype_id,searchtextfromtab_objectcollection;sql_attr_uint=midsq

MySQL 同一列有多个 INDEX 键

MySQL数据库中同一列有多个INDEX键是否正确?例如,id字段用不同的键名索引了两次,而phpmyadmin给我一条警告消息:MorethanoneINDEXkeywascreatedforcolumnid我想知道这是否可以,使用此方法对我的脚本或服务器是否有任何影响或副作用?我使用这种方法为每个索引对列进行分组。 最佳答案 两次索引单个列是无用的,会减慢插入和更新的速度,因为现在您必须(无用地)维护两个索引,并且可能会使优化器感到困惑(如果它实际上没有破坏某些东西)。另一方面,单独对列进行索引并作为一个或多个复合键的一部分进行

python - 如何使用 Django 的 index_together 与 filter 和 order_by 一起查询?

我在为我的查询建立正确的索引时遇到了问题。我有一个这样的模型:fromdjango.dbimportmodelsclassRecord(models.Model):user=models.ForeignKey(User,db_index=True,related_name='records')action=models.ForeignKey(Action,db_index=True)time=models.DateTimeField(db_index=True,default=timezone.now)classMeta:index_together=(('user','time'),

mysql - "Alter ignore"+ "unique key"去重,mysql和sql server

我有一个表,其中包含1列的一些重复值,即表emailsidemail1test@test.com2test@test.com3more@most.many4cook@sheep.com我想删除ID为“2”的行。我想通过创建email的唯一索引来实现这一点,从而强制表删除冗余。我已经看到这里引用了这个方法(http://www.it-iss.com/mysql/sql-removing-duplicate-records/)和https://stackoverflow.com/questions/19000050/how-to-delete-first-of-a-double-recor

mysql - DATE 字段上的 INDEX 和 MONTH() YEAR() 函数

日期/日期时间列上的索引未针对YEAR(col)、MONTH(col)函数进行优化是否仍然正确?BillKarwin给出了一个非常明确的答案here,但由于这是十年前的事,所以我想检查一下。我本以为,由于日期列被描述为Athree-byteintegerpackedasYYYY×16×32+MM×32+DD它可以以这样一种方式进行索引,即可以像在tightindexscan时使用多列索引一样对其进行优化。执行。这个优化真的还不存在吗?为什么不可能呢? 最佳答案 正确。一旦WHERE子句中的列被函数包装,MySQL优化器将不会使用索引

mysql - 是否需要在 WHERE 子句中使用 INDEX 第二列?

考虑使用获取数据SELECT*FROMtableWHEREcolumn1='XX'&&column2='XX'Mysql会过滤匹配WHERE子句第一部分的结果,然后是第二部分。我说得对吗?假设第一部分匹配10条记录,添加第二部分过滤5条记录。是否也需要INDEX第二列? 最佳答案 您在谈论短路评估。DBMS具有基于成本的优化器。不保证这两个条件中的哪一个会首先得到评估。将其应用于您的问题:是的,为您的第二列编制索引可能是有益的。是否经常在搜索中使用它?执行计划告诉你什么?访问模式是否会在不久的将来发生变化?该表包含多少条记录?覆盖索

java.sql.SQLException : Unknown initial character set index '255' received from server for connector 8. 0.11

在建立与MySQL数据库的连接时,出现以下错误java.sql.SQLException:Unknowninitialcharactersetindex'255'receivedfromserver.Initialclientcharactersetcanbeforcedviathe'characterEncoding'property.Google后,我知道我们需要修改my.ini或my.cnf中的2个参数。我正在使用MySQL8.0.11版本,但它没有这个文件。因此我使用SQL命令修改了这些参数:请注意名称和持续时间是表中的列名。ALTERTABLEcoursesMODIFYnam