草庐IT

index_length

全部标签

mysql - 带有多个定界符的 SUBSTRING_INDEX

我正在尝试从放入我的数据库的URL中删除一些信息。我有我正在使用的查询:Selectsubstring_index(refurl,'?gclid',1)asrefurl,Count(*)fromleadsgroupbysubstring_index(refurl,'?gclid',1)但是对于分隔符,我真的需要去掉这两个:?gclidor&gclid这是否可以通过在子字符串中执行OR语句来实现,还是完全不同的方式来完成? 最佳答案 使用IFSELECTSUBSTRING_INDEX(refurl,IF(LOCATE('?gclid'

mysql - 为什么存在唯一索引时MySQL Innodb "Creating sort index"?

在一个简单但非常大的Innodb表上,我在A列上有一个唯一索引,我想按照(整数)列A的顺序获取(整数)列B的列表非常简单的查询,我正在分页数百万条记录。SELECTBFROMhugeTableORDERBYALIMIT10000OFFSET500000在非常快的服务器上每次查询需要10秒?文件排序:是Filesort_on_disk:是Merge_passes:9这对我来说毫无意义,为什么它不能使用IndexA?Explain显示简单,没有可能的键和文件排序。 最佳答案 如果B列的值在索引页中不可用,则MySQL将需要访问基础表中的

MySQL "Incorrect index name..."错误(唯一外键)

我在使用MySQL时不断收到错误“Incorrectindexname'f7'”,我已将其缩小为以下错误:首先我创建表,CREATETABLEtestTable(idINTEGERPRIMARYKEYAUTO_INCREMENT,f7INTEGERNOTNULL,FOREIGNKEY(f7)REFERENCEStestTable2(id)ONDELETECASCADEONUPDATECASCADE,)ENGINE=InnoDB;然后在其他地方,ALTERTABLEtestTableADDUNIQUEf7;This让我相信这与重复索引有关(?)我只是不知道如何解决它。非常感谢。

具有一个多字段键的 MySQL 索引 : Having multiple indexes vs.?

当我在MySQL中手动创建表时,我会为我认为将用于查询的每个字段一次添加一个索引。当我使用phpMyAdmin为我创建表并以创建表形式选择索引时,我看到phpMyAdmin将我的索引合并为1(加上我的主索引)。有什么区别?这个比那个好吗?在什么情况下?谢谢! 最佳答案 这两个都不是特别好的策略,但如果我必须选择,我会选择多个单一索引。原因是只有使用索引的任何完整前缀中的所有字段,才能使用索引。如果您有一个索引(a,b,c,d,e,f)那么这对于过滤a的查询或同时过滤a的查询都可以正常工作>和b,但对于仅在c上的查询过滤将无用。没有简

MySQL : loop over tables and alter table add index

我有大约1000个以相同前缀开头的表:table_prefix_{SOME_ID}(我可以从另一个表中获取ID)遍历所有mysql中的表并执行以下操作的快速方法是什么:ALTERTABLE`table_prefix_{some_id}`ADDINDEX`fields`(`field`) 最佳答案 忘记循环。只需这样做:selectconcat('altertable',a.table_name,'addindex`fields`(`field`);')frominformation_schema.tablesawherea.tabl

MySQL & 嵌套集 : slow JOIN (not using index)

我有两个表:地区:CREATETABLE`localities`(`id`int(11)NOTNULLAUTO_INCREMENT,`name`varchar(100)NOTNULL,`type`varchar(30)NOTNULL,`parent_id`int(11)DEFAULTNULL,`lft`int(11)DEFAULTNULL,`rgt`int(11)DEFAULTNULL,PRIMARYKEY(`id`),KEY`index_localities_on_parent_id_and_type`(`parent_id`,`type`),KEY`index_localities

mysql - 如何在mysql中解析 "specified key was too long max key length is 255 bytes"?

每当我从一个mysql客户端(emma)触发此查询时:CREATETABLE`tbl_mappings`(`id`int(11)unsignedNOTNULLAUTO_INCREMENT,`private_id`int(11)unsignedNOTNULL,`name`tinytextNOTNULL,PRIMARYKEY(`id`),UNIQUEKEY`name`(`private_id`,`name`(255)),KEY`FK_tbl__private_integrations_mappings_tbl__private_integrations`(`private_id`),CON

MySQL 工作台 |错误 : Error 1280: Incorrect index name

我在使用InnoDB表的数据库中使用外键时遇到了一些问题。我正在使用MySQLWorkbench设计我的ER模型,并有一个ZendServer(OSX)用于使用MySQL5.1.54进行开发。一切正常,没有任何错误。将此数据库部署到我的实时服务器时失败。它是带有MySQL5.1.58-1~dotdeb.1-log的Debian安装。我不明白为什么这两个系统的工作方式如此不同。ERROR:Error1280:Incorrectindexname'fk_accounts_countries_idcountry'DROPTABLEIFEXISTS`countries`;SHOWWARNING

java.sql.SQLException : Column Index out of range, 0 < 1

我想显示数据库中的所有图像。我已经编写了代码,但显示错误java.sql.SQLException:ColumnIndexoutofrange,0|application_name|varchar(45)||application_id|varchar(10)||application_path|varchar(500)||application_icon|blob|我只想显示图片。下面是我的servlet代码图标下载.javaprotectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsS

mysql - MySQL 中的 "CACHE INDEX"和 "LOAD INDEX INTO CACHE"

MySQLdocumentation意味着您可以将表的一个或多个索引分配给命名的键缓冲区(并预加载它们)。手册中的语法定义是:CACHEINDEXtbl_index_list[,tbl_index_list]...INkey_cache_nametbl_index_list:tbl_name[[INDEX|KEY](index_name[,index_name]...)]这似乎是说您可以只将一个表的索引分配给指定的键缓冲区。例如:SETGLOBALmy_keys.key_buffer_size=512*1048576;CACHEINDEXmy_tableKEY(PRIMARY)INTO