草庐IT

query-optimization

全部标签

php - 拉维尔 4 : How to apply a WHERE condition to all queries of an Eloquent class?

我正在尝试为我拥有的表实现“已批准”状态,这非常简单,基本上,如果行的批准列等于1;应该检索该行,否则不应该检索。问题是,现在我必须遍历整个代码库并添加一个WHERE语句(即函数调用),这不仅耗时而且效率低下(如果我想删除该功能等)我该怎么做?是否像在Eloquent子类的构造函数中添加$this->where(..)一样简单?这不会影响其他CRUD操作吗?例如不更新未批准的行? 最佳答案 没有queryscope时给出了答案功能可用。你可以覆盖主查询,只针对Post模型,比如classPostextendsEloquent{pro

php - 拉维尔 4 : How to apply a WHERE condition to all queries of an Eloquent class?

我正在尝试为我拥有的表实现“已批准”状态,这非常简单,基本上,如果行的批准列等于1;应该检索该行,否则不应该检索。问题是,现在我必须遍历整个代码库并添加一个WHERE语句(即函数调用),这不仅耗时而且效率低下(如果我想删除该功能等)我该怎么做?是否像在Eloquent子类的构造函数中添加$this->where(..)一样简单?这不会影响其他CRUD操作吗?例如不更新未批准的行? 最佳答案 没有queryscope时给出了答案功能可用。你可以覆盖主查询,只针对Post模型,比如classPostextendsEloquent{pro

Mysql使用通配符提高搜索性能(%%)

以下是我用于通过电子邮件搜索某人的查询SELECT*FROMphppos_customersJOINphppos_peopleONphppos_customers.person_id=phppos_people.person_idWHEREdeleted=0ANDemailLIKE'%f%'ORDERBYemailASC在“电子邮件”上添加索引会加快查询速度吗? 最佳答案 不能,因为当你有前导通配符时,MySQL将无法使用索引。如果您将LIKE更改为'f%',那么它将能够使用索引。 关于

Mysql使用通配符提高搜索性能(%%)

以下是我用于通过电子邮件搜索某人的查询SELECT*FROMphppos_customersJOINphppos_peopleONphppos_customers.person_id=phppos_people.person_idWHEREdeleted=0ANDemailLIKE'%f%'ORDERBYemailASC在“电子邮件”上添加索引会加快查询速度吗? 最佳答案 不能,因为当你有前导通配符时,MySQL将无法使用索引。如果您将LIKE更改为'f%',那么它将能够使用索引。 关于

mysql - 替代 COUNT for innodb 以防止表扫描?

我设法整理了一个适合我需要的查询,尽管比我希望的要复杂。但是,对于表的大小,查询比它应该的慢(0.17s)。原因,基于EXPLAIN下面提供,是因为在meta_relationships上有表扫描表,因为它有COUNT在WHERE条款innodb发动机。查询:SELECTposts.post_id,posts.post_name,GROUP_CONCAT(IF(meta_data.type='category',meta.meta_name,null))AScategory,GROUP_CONCAT(IF(meta_data.type='tag',meta.meta_name,null

mysql - 替代 COUNT for innodb 以防止表扫描?

我设法整理了一个适合我需要的查询,尽管比我希望的要复杂。但是,对于表的大小,查询比它应该的慢(0.17s)。原因,基于EXPLAIN下面提供,是因为在meta_relationships上有表扫描表,因为它有COUNT在WHERE条款innodb发动机。查询:SELECTposts.post_id,posts.post_name,GROUP_CONCAT(IF(meta_data.type='category',meta.meta_name,null))AScategory,GROUP_CONCAT(IF(meta_data.type='tag',meta.meta_name,null

mysql - 多列索引与多索引

我在MySQL数据库中有下表:CREATETABLE`secondary_images`(`imgId`int(10)unsignedNOTNULLAUTO_INCREMENT,`primaryId`int(10)unsignedDEFAULTNULL,`view`varchar(255)DEFAULTNULL,`imgURL`varchar(255)DEFAULTNULL,`imgDate`datetimeDEFAULTNULL,PRIMARYKEY(`imgId`),KEY`primaryId`(`primaryId`),KEY`imgDate`(`imgDate`))ENGINE

mysql - 多列索引与多索引

我在MySQL数据库中有下表:CREATETABLE`secondary_images`(`imgId`int(10)unsignedNOTNULLAUTO_INCREMENT,`primaryId`int(10)unsignedDEFAULTNULL,`view`varchar(255)DEFAULTNULL,`imgURL`varchar(255)DEFAULTNULL,`imgDate`datetimeDEFAULTNULL,PRIMARYKEY(`imgId`),KEY`primaryId`(`primaryId`),KEY`imgDate`(`imgDate`))ENGINE

Mysql: "slow_query_log"和 "log_slow_queries"有什么区别

如果没有任何区别,为什么要用两个服务器参数来实现一个行为? 最佳答案 log_slow_queries在MySQL5.1.29中被slow-query-log弃用。MySQL5.1ReferenceManual有更多细节。 关于Mysql:"slow_query_log"和"log_slow_queries"有什么区别,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1075515

Mysql: "slow_query_log"和 "log_slow_queries"有什么区别

如果没有任何区别,为什么要用两个服务器参数来实现一个行为? 最佳答案 log_slow_queries在MySQL5.1.29中被slow-query-log弃用。MySQL5.1ReferenceManual有更多细节。 关于Mysql:"slow_query_log"和"log_slow_queries"有什么区别,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1075515