我有一个包含i(主)、s和g列的mysql表。我有两个问题:
INSERT INTO usertable (i, s, g) VALUES('1', '2', '5') ON DUPLICATE KEY SET s=(s*g+'2')/(g+'5'), g=g+'5';
和
SELECT s FROM usertable WHERE i='1' LIMIT 1
是否可以在1查询中同时使用这两个查询?基本上是想减少DB查询的数量。
谢谢
我有一张桌子,它代表用户连接到游戏室。看起来是这样的:
id | gameRoomId | userId
------------------------
0 abc bob
1 xyz joe
2 xyz frank
...
有方法可以删除自动增量主键id列吗?我没有把它用于任何查询,也不打算使用它。
gameRoomId和userId对它们分别有一个通用索引。
我现在正在使用mysql,如果有关系的话,可能最终会切换到postgres。
我有一张桌子
create table adjacencies(
relationId int not null primary key auto_increment,
parent int not null,
child int not null,
pathLen int not null
) ;
我正在插入大量的条目
insert into adjacencies( parent, child, pathLen )
select a, b, c from something where condition ;
因此,有时当我运行insert查询时,(父、子)关系可能已经存在
我们有一些较大的表,并正在尝试针对这些表进行优化。(注意:在本例中,id、user_id和delete都有索引)。
这些都是闪电般的速度:
select *
from sites
where (sites.id = 242 and sites.user_id = 425)
select *
from sites
where (sites.id = 242 or sites.user_id = 425)
但是,一旦我们添加了任何混合条件检查,它就只是坦克
select *
from sites
where (sites.id = 242 or sites.user_id = 425) and
我正在尝试运行如下所示的外键添加查询,并将外键检查设置为0。两个表中的两列完全相同。此外,这两个都是主键。这里的解决方案都不能帮助解决这个问题。我在本地主机上。
mysql> alter table deliveryaddress
-> add foreign key(oid) references productorder(oid)
-> on delete cascade on update restrict;
ERROR 1822 (HY000): Failed to add the foreign key constaint. Missing inde
这是一个多对多的表链接到表的两端,每个表大约有70000条记录。多对多约有530万条记录。
两个“侧”表都有外键引用(一个是"tokens",另一个是"paras")。要找出包含给定标记的所有段落,我需要执行如下SELECT语句
SELECT para_id FROM many_to_many WHERE token_id = 3333 GROUP BY para_id;
尽管"token_id“列是复合主键的”最左边“列,并且在para_id上有一个索引(由para_id外键使用),但它的运行速度似乎相当慢。
我曾尝试使用EXPLAIN,但似乎从未提到
一些背景
我有两个表在我的Asp.Net MVC 4数据库第一应用程序,提交和评论。(还有很多,但它们与这个问题无关)。任何给定的提交都可以有任意数量的注释(一对多)与其相关联。
我有一个提交详细信息页面,用户可以在该页面上打开带有部分视图的jQuery对话框,以便向提交中添加注释。此部分视图绑定到为添加注释而创建的强类型视图模型。
表/模型
提交表
以下是提交表的类模型。(为了简单起见,我省略了一些属性)。
Partial Public Class Submission
Public Property Submission_ID As Integer
Public Prope
我对EF有一个查询,如下所示:
var x = _db.qMetaDataLookups.ToList();
如果在SQL server SELECT * FROM qMetaDataLookup上直接执行,将返回2155个不同的行。执行上述操作后,x还包含2155个元素。
问题是数据是错误的。我不会像从SQL查询中那样从EF中获得相同的数据。
特别是,SQL输出上有一个特定的元素,称为"WXYZ",它在查询的EF版本(针对完全相同的数据库)中根本没有出现。
相反,我发现的是无数的重复。如果我称之为x.Distinct(),列表将从2155个元素降至143个元素。
我精神错乱了
为了只获得带有最新时间戳的数据,我从这个答案中使用mysql查询:
我的查询如下:
SELECT stock_id,timestamp,price FROM market m1
WHERE timestamp =
(SELECT MAX(timestamp) FROM market m2 WHERE m1.stock_id = m2.stock_id)
但执行起来需要10分钟。
优化它的不同选择是什么?(mysql)
市场有以下模式:(sqlalchemy)
class Market(d
我必须用Laravel将这个数据库迁移到MySQL,但是我似乎不能使用多个主键来自动递增元素。
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->bigIncrements('user_id');
$table->string('name');
$table->string('surname');
$table->s
我的mysql查询是
SELECT tbl_members.id,
tbl_members.username,
tbl_members.confirmcode,
tbl_members.preferredlive,
tbl_members.sex,
tbl_members.unlock_for,
tbl_members.createddate,
tbl_members.createddate,
tbl_members.headline
FROM tbl_members
WHERE t
我正在研究现有的DB,并尝试优化它。我看到一个表没有一个主键,但是有两个外键作为主键。我知道会成功的。但是,为了更好的性能,一个主键和两个外键是否更好,或者主键(key1,key2)的工作性能和一个键一样好?
例如:
CREATE TABLE ABC (
'xid' int(11),
'yid' int (11),
PRIMAY KEY (xid, yid)
)
does it perform the same (in terms of indexing) as:
CREATE TABLE ABC (
'id' int