草庐IT

Indexing

全部标签

mysql - 索引这个 mysql 查询

我正在使用以下查询查询数据库。此查询需要21秒才能执行。我已经通过解释查询进行了检查。我在字段groupId,batchId上分别有索引。EXPLAINSELECTmessage,sentOn,maskId,isDndCheck,contentTypeFROMsms_historiesWHEREgroupId=1750GROUPBYbatchIdORDERBYbatchIdDESCLIMIT0,1我正在通过此查询获取组的最后一个帖子。我的解释查询显示结果idselect_typetabletypepossible_keyskeykey_lenrefrowsExtra1SIMPLEsms

MySQL 多列唯一键

我熟悉的语法在'some_table'('col1','col2')上创建唯一索引'blah'但是我不确定这将如何表现。更具体地说,文档说Acolumnlistoftheform(col1,col2,...)createsamultiple-columnindex.Indexvaluesareformedbyconcatenatingthevaluesofthegivencolumns.在某些情况下这似乎没问题,但我想制作一个只包含唯一数字的表格。所以,我可以看到col1为12,col2为2,据我所知,这将连接到122,然后col11和col222的值将匹配它,这不是我想要的。有没有办

mysql - 我是否需要为具有单行(设置表)的 MySQL 表定义索引

出于性能/优化原因,我是否需要为具有单行(设置表)的MySQL表定义索引? 最佳答案 如果它只有一行,那是没有意义的,因为无论如何都会对整个表进行seq扫描。 关于mysql-我是否需要为具有单行(设置表)的MySQL表定义索引,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/6053507/

mysql - 我应该为这个臃肿的查询添加哪些 SQL 索引?

我想知道索引是否会加快查询速度。我上次检查需要9秒。流量表有大约30万行,列表和用户5千行。如果这只是一个蹩脚的查询,我也愿意接受mock/羞辱。我早就写过了。它应该获得页面浏览量(流量)最多的列表。如果缺少解释,请告诉我。SELECTtraffic_listingidASlisting_id,COUNT(traffic_listingid)ASgenuine_hits,COUNT(DISTINCTtraffic_ipaddress)ASdistinct_ips,users.username,listings.listing_address,listings.datetime_crea

mysql - sql多对多查询索引优化

我有一个我想优化的多对多查询,我应该为它创建什么索引?SELECT(SELECTCOUNT(post_id)FROMpostsWHEREpost_status=1)astotal,p.*,GROUP_CONCAT(t.tag_name)taggedFROMtags_relationtrJOINpostspONp.post_id=tr.rel_post_idJOINtagstONt.tag_id=tr.rel_tag_idWHEREp.post_status=1GROUPBYp.post_id解释idselect_typetabletypepossible_keyskeykey_lenr

mysql - 在使用 order by with limit 时避免在 mysql 中进行全表扫描

我正在写一个查询:select*fromtable_nameorderbyidlimit21在我使用限制小于或等于20之前,扫描的行等于确切的获取行(例如,如果限制为10,则扫描的行也只有10)。如果限制超过20,则表将被完全扫描。唯一为主键id创建的索引。谁能说出这种情况下全表扫描的原因?我的表有1099行。ExplainResult:---------------------------------------------------------------------------id|selecttype|table|type|possiblekeys|keys|key_len|

mysql - 外键和索引

我有2个表:产品和类别。每个类别有很多产品,一个产品可以属于多个类别。产品product_id-intprimaryautoincrementname-uniqueetc.类别category_id-intprimaryautoincrementname-uniqueetc.我有一个manyTomany关系的第3个表。产品类别product_id->foreignkey:products.product_idcategory_id->foreignkey:category.category_id我的问题是:我是否应该为product_categories中的product_id和cat

mysql - 在 MySQL 中创建一个索引是另一个索引的子集

我正在使用MySQL,尽管我怀疑这是一个通用的数据库问题。我有一个包含6个数字列的表格。其中的前5个构成主键。这是一个大表(2000万行并且还在增长),所以一些查询需要时间-大约10秒,这本身并不太长,但我需要运行很多查询。我知道主键是自动索引的——我在我通常查询的主键中单独索引一些列组有什么好处吗?也就是说,如果我定期查询5个主键列中的前3个,我应该为这3个创建一个额外的索引,还是因为它已经是主键索引的一部分而多余? 最佳答案 对于返回一行或一小部分行的查询来说,十秒是相当长的时间。但是,如果查询返回表内容的3%,十秒并不算长。您

c# - 如何解决 "Index was outisde the bound of the array"错误?

您好,我正在使用这段代码从MySQL数据库的5个不同表中获取我需要的数据。privatevoidgoDateBtn_Click(objectsender,EventArgse){reportList.Items.Clear();vardb=newDBConnect();MySqlCommandcmd=null;MySqlDataReaderdr=null;doubletotalsales=0;try{if(db.OpenConnection()==true){stringcmdstr="SELECTol.*,o.*,m.*"+"FROMorderlistol"+"INNERJOINor

mysql - 为什么在 MySQL 中每个列只在一个索引中并且查询中列的顺序很重要?

我经常在表posts中搜索user+status和user+时间。SELECT*FROM`posts`WHERE`user`='xxx'and`status`='active'SELECT*FROM`posts`WHERE`user`='xxx'and`time`>...因此我设置了两个索引(user,status)和(user,time)我知道,需要更新的索引越多,写入过程就越慢。但我认为在这种情况下,同时拥有两个索引很有用,因为读取操作的数量远远超过写入操作。无论如何,PHPMyAdmin都会给出一个警告,指出“已为列用户创建了多个索引”。我可以忽略这个警告吗?我检查了Wordpr