我有一个SQLite表,其中包含大量数据,有数百万行。大约每秒都会插入一行。
这些行有一列表示创建日期,该日期从Epoch开始转换为毫秒,并保存为一个数字,如1343224574667。每一行也有一个容器ID列,它只是一个字符串字段。
我正在尝试运行一个查询,以获取在特定时间范围内为某个容器Id创建的项。所以查询看起来应该是这样的
Select * from Item where Created > [number] and Created < [number] and ContainerId=[string]
非常基本的查询。
我在表上有一些索引。有一个在Created上,还有一
我使用的是MySQL 5.5.37。我有一个有列的表
`NAME` varchar(100) COLLATE utf8_bin NOT NULL
并且我打算对name列进行部分搜索,比如
select * FROM organnization where name like ‘%abc%’
请注意,我希望搜索字符串“abc”出现在任何地方,而不一定出现在开头。鉴于此,有没有什么索引可以用来优化查询执行呢?
如果我有一个主键id,并且我对这个键进行了一个简单的查询,
SELECT id FROM myTable WHERE id = X
它是否会找到一行,然后不再将其视为主键,或者告诉mysql使用LIMIT 1来限制其select会更好?例如:
SELECT id FROM myTable WHERE id = X LIMIT 1
我想截断mysql数据库中表的所有行。
SET FOREIGN_KEY_CHECKS = 0; -- Disable foreign key checking.
-- Need MySQL Query to iterater/loop and truncate all the tables or delete all the rows of the -- table
SET FOREIGN_KEY_CHECKS = 1; -- Enable foreign key checking.
有人能帮我做一下查询吗?
谢谢。
我在mysql数据库上运行了以下查询:
select value from fact_data
join entities on fact_data.entity_id=entities.id
where entities.ticker='{value}'
limit 1
fact_data是一个拥有超过2300万条记录的大表。如果entities.ticker中存在{value},则查询返回不到一秒。但是如果{value}不存在,则查询需要超过2分钟才能返回。这就像是在fact_table上执行表扫描一样。为什么mysql不先检查{ entities.ticker }是否存
我试图从Python对mysql服务器执行超过10k的查询,下面是我准备好的查询语句
UPDATE `rates`
SET `in`=%s, `out`=%s, `amount`=%s, `minamount`=%s, `maxamount`=%s
WHERE `from`='EXMRUB' AND `to`='YAMRUB' AND `id_site`= 1
问题是它运行得非常慢,我的意思是执行10k更新大约需要5分钟,我如何修改,我的查询使它更快?
我对MySQL比较陌生,我想知道是否有可能在没有主键和多对多关系的表透视/映射中防止重复条目。一个简单的例子:
table 1
table1ID
field
field
table 2
table2ID
field
field
pivot table
table1ID
table2ID
由于多对多关系意味着不能使用单个主键,有没有一种简洁的方法(1-2个查询)来防止添加重复的条目(相同的table1ID,table2ID对)?
Edit:显然,这可以通过SELECT和循环遍历结果来完成,但这不仅是一个额外的调用,而且还有一个额外的循环。
我正在使用qt处理数据库。我需要做的一件事是检索表的某些部分,其中一些键集作为输入数据。这是我使用的代码:
bool getData(const QList<int> &idlist, QVector<DataStruct> &result)
{
result.resize(idlist.size());
QSqlDatabase &dbase = QSqlDatabase::database(conname); //conname is the QString holding the name of a connection
在我的java web应用程序中,我使用HSQLDB作为嵌入式DB --我必须使用这个查询来提供来自hsqldb的数据,有任何方法可以提高这个查询的性能吗?
SELECT RU.c AS Title, RU.g AS FullCode, RU.id AS RUAccountID,RU.i AS Published, RU.b AS RUAccountCode,
PC.id AS PCID,SL.id AS SLAccountID, SL.a AS gl_id,GL.a AS at_id
from GLBL_PC AS PC
INNER
使用两个表(A & B),它们的PK可连接,A的主键被排序为DESC ( MySQL 8允许按降序排列PK),A具有2个索引的ASC排序。
当我执行如下查询时
SELECT * FROM `A` a
LEFT JOIN `B` b ON a.id <=> b.id
WHERE a.idx1 = 'X' AND a.idx2 = 'Y';
它什么也回不了..。但是,如果我加上一个精确的条件,比如:
SELECT * FROM `A` a
LEFT JOIN `B` b ON a.id <=> b.id
WHERE a.idx1 =
我有一个计数表,当重命名一个复合密钥字段时,我希望能够对计数进行求和。这很难解释,所以让我向您展示一些SQL:
示例表:
CREATE TABLE `test` (
`id` int(11) NOT NULL,
`type` int(11) NOT NULL,
`count` int(11) NOT NULL,
PRIMARY KEY (`id`,`type`)
);
插入一些数据:
INSERT INTO test VALUES(1, 10, 1);
INSERT INTO test VALUES(2, 20, 3);
INSERT INTO test VALUES(2, 1
我正在从mysql迁移到mongodb。昨天开始学习mongodb。
我有一个大的mysql表(超过400万行,每个字段超过300个),我将移到mongodb。
让我们假设,products表有以下字段-
_id、类别和300+其他字段。
为了在产品中找到中的前5大类以及它们的计数,我有下面的mysql查询
Select category, count(_id) as N from products group by category order by N DESC limit 5;
我在category字段上有一个索引,这个查询在mysql中大约占用4.4秒。
现在,我已经成功地将这个表移到
没有明显的理由(对我来说)我不能再对MySQL中的表进行更新了。版本是:
mysql Ver 15.1 Distrib 10.0.29-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
我所做的是:将一个新表添加到现有的数据库中。这张桌子是这样的:
CREATE TABLE `drawdata` (
`year` int(11) NOT NULL,
`left1` varchar(40) NOT NULL,
`left2` varchar(40) NOT NULL,
...
...
`left31` v
我对一个缓慢的查询有问题。考虑一下表tblVotes --它有两列-- VoterGuid,CandidateGuid。它持有选民投票给任何数目的候选人。
这张表中有300多万行--约有13 000名不同的选民投票给大约270万名不同的候选人。该表中的行总数目前为650万行。
我的查询试图实现的是-在最快和最高速缓存-有效的方式(我们正在使用SQL )-根据他们获得的选票数前1000名候选人。
守则是:
SELECT CandidateGuid, COUNT(*) CountOfVotes
FROM dbo.tblVotes
GROUP BY CandidateGuid
HAVING COUN
我有这个查询来获取最新的按电话号码分组的对话,但是查询时间太慢了。怎么会更快呢?
SELECT * from messages WHERE id IN (SELECT max(id) from messages GROUP BY phone) AND chat = :ch AND status = :st AND seller_id = :seller ORDER BY created_at DESC
DB版本10.2.44-MariaDB
我需要在MySQL中保持一个任务队列。当从DB读取它们时,我必须确保顺序与持久化的顺序完全相同。一般来说,我更喜欢与DB无关的解决方案(即纯JPA),但是添加一些Hibernate和/或MySQL的味道也是可以接受的。
我的(可能是天真的)第一个版本看起来如下:
em.createNamedQuery("MyQuery", MyTask.class).setFirstResult(0).setMaxResults(count).getResultList();
其中,MyQuery没有任何"order“子句,即它看起来如下:
SELECT t FROM MyTasks
我有sqlite查询,我想让它在mysql数据库上工作,我使用的是匹配和对的,但是如果您看到这个部分,它不会有帮助。
'TEST:^hello '
我怎么能这么做?谢谢
SELECT * FROM table_a MATCH 'TEST:^hello ' AND test2 = 'hello'
我使用MATCH,现在在我的MySql查询中,我想找到所有以"hello“开头的单词(在hello之后看到空格!)那么,我如何使用全文搜索进行匹配和反对呢?
words
hello
hello how are you
you are good