我有一个这样的mysql表结构:
CREATE TABLE IF NOT EXISTS menu(
id INT(5) NOT NULL AUTO_INCREMENT PRIMARY KEY,
p_id INT(5), -- parent id
sort_id INT(5) NOT NULL, -- for position
title VARCHAR(50) NOT NULL,
etc ...);
数据结构是这样的:
id | p_id | sort_id | title
1 | NULL | 1 | root_1
2 | 1 | 1 | sub1 o
我经常使用下面的查询:
SELECT * FROM table WHERE Timestamp > [SomeTime] AND Timestamp < [SomeOtherTime] and publish = 1 and type = 2 order by Timestamp
我想优化这个查询,我正在考虑把timestamp作为聚集索引的主键的一部分,我认为如果timestamp是主键的一部分,那么插入到表中的数据将按timestamp field.Also顺序写入磁盘。我认为这会大大改善我的查询,但不确定这是否会有帮助。
table has 3-4 million+ rows
这是mysql查询
SELECT *
FROM users AS up
JOIN users AS u ON up.id = u.parent_id
JOIN users AS uc ON u.id = uc.parent_id
WHERE up.id =16
这是视图文件中的输出
<?php foreach($query->result() as $q): ?>
<?php echo $q->id; ?>
<?php endforeach; ?>
mysql结果提供了3个级别的结果,但在html中它只输出1个级别,并且
我从sql地理开始,我进行了一个查询,以获取在多边形中发送的所有存储点,它得到了正确的结果,但执行起来需要很长时间。如何才能更好地执行此查询?
PS:我在5.5.62上使用mysql。
我的问题是:
SELECT id, name
FROM geolocations
WHERE id in ( SELECT geo_id FROM users) AND
CONTAINS(GEOMFROMTEXT('POLYGON((-22.892726399999997 -47.05525290000003,-22.891496748403178 -47.05564986693423,-22.89
在我的数据库中,我有一个表people,我使用的是单个表继承,其中包括以下类:
class Person < ActiveRecord::Base
end
class Member < Person
end
class Business < Member
end
它产生的查询把我弄糊涂了。我想要的是Member.all返回所有业务以及任何其他子类型的成员。但前提是我最近访问了Business。我认为这是因为我的类没有缓存在开发模式中(原因很明显),但它似乎仍然是奇怪的/错误的行为。
这是rails中的一个bug吗?或者它是否按预期工作?在这两种情况下,有谁能为开
我有一个表users,其中我有一个字段'id‘,另一个字段是'parent id’。我还期望在用户表中的目标字段。
我有用户列表,直到第8级层次结构。其中A是B的父级,B是C的父级,依此类推。
e.g
A level 0
|
B level 1
|
c level 2
现在,当我寻找用户A时,我想使用sql查询'expected target‘获得所有子用户。也就是说,当我使用id = id of A时,我可以看到A,B,C等的预期目标。
如果A、B和C的expected_targets分别为1000、500、200,则输出应如下所示:
id pa
我正在尝试编写一个php代码,它将为我获取一个具有无限深度的多级菜单。我想只使用一个查询和一个循环就可以完成这个任务。下面是我所拥有的:我有一个包含以下列的menu_items表:
id
categories_id (overall menu id)
title (Text title)
link (Link)
ord (the order within the category itself)
parent (Parent item, which is basically another item, different from categories_id)
depth (Menu lev
我有一个多级模型结构,我正在尝试创建一个查询,我可以在其中搜索主父模型上的属性,或者关联更改中的最后一个模型。我的结构如下所示:
class Parent
attr_accessible :pname
has_one :child
end
class Child
has_many :infos
end
class Info
has_one :setting
end
class Setting
has_many :subsettings
end
class Subsetting
attr_accessible :sname
end
我要做的
我有一个具有以下模式的复杂位置数据库:
table States
id : INT PK AutoIncrement
name : VarChar 50 UNIQUE
table Counties
id: INT PK AutoIncrement
stateID : INT ForeignKey ->States(id)
name : VARCHAR(50)
table Towns :
id: INT PK AutoIncrement
stateID : INT ForeignKey ->States(id)
countyID : INT ForeignKey ->C
我正在升级库存数据库,并希望加快查询速度。大部分排序是在2列上进行的,每列都是一个范围。例如。
SELECT ....
WHERE price BETWEEN 10.50 AND 34.20
AND date BETWEEN 1311264060 AND 1313942460
ORDER BY stockNo LIMIT 100
我知道因为使用了范围,所以MySQL只能在一列上使用索引。换句话说,它可以使用索引来提取与价格范围匹配的记录,但随后必须借助于表扫描来查找与日期范围匹配的记录。
我的想法是假设价格和数据是x和y轴,填充一列空间数据,并利用MySQL、空间搜索和R-TREE索引来提取
我使用的是mysql数据库,它只有一个表"data"和17,151257 rows.This表有一个列字符串。我希望打印字符串列中包含特定查询字符串(存储在"entered_query“变量中)的所有行,因此我使用了以下方法:
SELECT DISTINCT * from data WHERE string LIKE '%".$entered_query."%' limit 10
很明显,上面的查询要花费太多的时间来执行。
我读过索引是可以使用的,但在这种情况下如何使用呢?
我还考虑过将整个数据划分为10个不同的行,然后使用perl D
这是用于InnoDB和MySQL 5.7的。
如果我有这样的查询:
SELECT A, B, C FROM TABLE WHERE STRCMP(D, 'somestring') > 0
是否可以在D上建立一个可供查询使用的索引?也就是说,MySQL是否足够聪明地为STRCMP函数使用btree索引?
如果没有,我如何才能重新设计查询(和/或表),以便能够对D进行字符串比较,并且可以进行某种形式的剪枝,从而不必命中每一行?
我使用 (修改的预顺序树遍历)模型将分层数据存储在MySQL表中。(MPTT模型:另一种描述是嵌套集模型。)我的问题是:有人想出了一种聪明的方法来对树上的查询结果进行排序吗?我可以按标签排序,但是结果集将按标签排序,而不考虑节点在树中的位置或深度。
下面是一个用于检索任意节点树的查询示例,每个节点的深度如下:
SELECT node.id, (COUNT(parent.id) - (sub_tree.depth + 1)) AS depth
FROM person AS node,
person AS parent,
person AS sub_parent, (
SELECT nod