草庐IT

OPTIMIZATION

全部标签

mysql - 通过 BOOLEAN 值优化 SQL (mySQL)

我正在做一个非常艰巨的副业项目;我的问题是关于使用BOOLEAN值确定是否需要进一步数据处理时获得的效率。例如:如果我有一张列出所有生物的表格。在另一张本质上相关的表格中列出了它们的hibernate期,以及hibernate期间每天消耗的卡路里。在(Creatures)表中有一个“hibernates”BOOLEAN值是否有效。如果为真,则转到“hibernation_creature_info_relations”表并找到具有该ID的生物并返回该信息。这意味着对于所有“hibernates”值为false的生物,SQL将不必搜索“hibernation_creature_info_

mysql - 使用单个查询选择和删除

我有2个表:用户(user_id、user_connected)房间(room_id、room_initiating_user_id、room_target_user_id)我想删除所有启动用户和target_user都设置为“user_connected=0”的“房间”这里有两个问题:如何定位这些用户?显然这个查询是行不通的:SELECTroom_idFROMrooms,usersWHERE((room_target_user_id=user_id)AND(user_connected=0))AND((room_initiating_user_id=user_id)AND(user_

mysql - 从最后一行开始搜索 mysql 表

所以,我知道在关系数据库上没有“最后一行”这样的东西,但我找不到更好的词来解释我想做的事情。我有一个如下所示的表,其中id是一个AUTO_INCREMENT字段,time是当前的Unix时间戳。请注意,我可以为不同的行设置相同的时间戳。╔════╦════════════╦════════════╦═════════════╦════════════╗║id║field_1║field_2║field_n║time║╠════╬════════════╬════════════╬═════════════╬════════════╣║1║data_field║data_field║da

插入文件时,MySQL 查询速度变慢

这是我的第一个问题,因为我曾经遇到过的每个问题都在这里有了答案。请原谅糟糕的格式。查询本身在1毫秒内运行,这很棒。它从大约300万个条目中产生大约600,000个结果,而数据库每秒插入大约10个。我知道这对于数据库来说不是很多,所以我认为负载不是问题。我还有其他大型查询可以很好地插入文件中。具体来说,当添加“SELECT*INTOOUTFILE”时,运行时间约为11小时。这对于运行查询来说太长了,我不知道为什么。表:container_table-PrimaryKey:containerID(bigint),mapID(int),cavityID(int)-Index:timestam

sql - 让 SQL 使用正确的索引

我有一个表有两个索引,其中一个是某个查询的更快覆盖索引。但是,mySQL(5.1)没有选择正确的索引。我查看了此查询的解释并进行了一些速度测试,如果您强制使用该键,结果会大不相同。是否有任何方法可以检查它如何选择索引以及它基于什么标准? 最佳答案 这将使用您需要的索引(如果它可用):SELECT*FROMtableFORCEINDEX(myindex)MySQL收集并使用表统计信息来估计索引的基数。它将其保存在information_schema.statistics中。在可用于过滤的两个索引中,MySQL选择基数较大的一个。如果有

mysql - (按位)MySQL 中的超集和子集

以下查询在MySQL中是否有效:SELECT*FROMtableWHEREfield&number=number;#tofindvalueswithsupersetofnumber'sbitsSELECT*FROMtableWHEREfield|number=number;#tofindvalueswithsubsetofnumber'sbits...是否已为字段创建索引?如果没有,有没有办法让它运行得更快? 最佳答案 更新:有关性能详细信息,请参阅我的博客中的此条目:BitwiseoperationsandindexesSELEC

mysql - 您如何设计数据库以允许快速多列搜索?

我正在使用MySQL从RETS数据创建房地产搜索,但这是一个一般性问题。如果您有多个列,您希望用户能够根据这些列来过滤他们的搜索结果,您如何优化它?例如,http://www.charlestonrealestateguide.com/listings.php有16个左右的可选过滤器。诚然,他最多只有11,000个条目(我有相同的数据),但我不认为搜索是用一个巨大的WHEREANDANDAND...子句执行的。或者这通常是通过一个巨大的多列索引来完成的?Newegg、Amazon和无数其他公司也拥有适用于大量数据的又酷又快速的过滤系统。他们是怎么做到的呢?倾向于提供范围而不是空输入是否

php - 如何在PHP中自动优化mysql数据库?

我有一个数据库,需要24小时自动优化我该怎么办? 最佳答案 我写了一个类classDbPerformance{var$TablesHaveOverHead=array();functionDbPerformance(){if(date("H")=='00'){$this->GetOverheadTables();$this->OptimizeDatabase();}}functionGetOverheadTables(){$result=mysql_query("SHOWTABLESTATUS");while($row=mysql_

mysql - 在 MySQL 中,如何连接两个在 WHERE 条件下都有列的非常大的表?

我正在尝试确定查询具有大量数据的两个连接表的最佳通用方法,其中每个表在where子句中都有一列。想象一个带有两个表的简单模式:postsid(int)blog_id(int)published_date(datetime)title(varchar)body(text)posts_tagspost_id(int)tag_id(int)具有以下指标:posts:[blog_id,published_date]tags:[tag_id,post_id]我们要选择给定博客上标记为“foo”的10篇最新帖子。为了便于讨论,假设该博客有1000万篇帖子,其中100万篇贴有“foo”标签。查询此数

MYSQL - 从大表的第二行中选择数据

我有一个外部3rd方程序实时将数据库导出到mysql,我想显示数据以进行报告。所以,我无法更改结构,因为它是实时同步的。表结构是这样的ID|Date|Transaction-----------------------------12|2012-11-01|20012|2012-11-02|25012|2012-11-03|15012|2012-11-04|100012|2012-11-05|225....13|2012-11-01|17513|2012-11-02|2013|2012-11-03|5013|2012-11-04|10013|2012-11-05|18013|2012-