select count(DISTINCT Article_tbl.id) FROM Article_tbl
JOIN `imagelist_tbl` ON imagelist_tbl.ArticleID =Article_tbl.ArticleID
AND (`imagelist_tbl`.`ImageStatus` = 1) where IsRead = 1 and (ArtideImgCount > 0 )
uj5u.com熱心網友回復:
這個陳述句執行依然要3s以上, 另外
我是要判斷 (select count(1) from `imagelist_tbl` where imagelist_tbl.ArticleID =Article_tbl.ArticleID AND (`imagelist_tbl`.`ImageStatus` = 1) ) >0
這不是join 一下 就行吧?
uj5u.com熱心網友回復:
就是判斷一下是否在這表中存在用
uj5u.com熱心網友回復:
不用子查詢,用關聯試試,類似這樣
select count(DISTINCT Article_tbl.id) FROM Article_tbl
JOIN `imagelist_tbl` ON imagelist_tbl.ArticleID =Article_tbl.ArticleID
AND (`imagelist_tbl`.`ImageStatus` = 1) where IsRead = 1 and (ArtideImgCount > 0 )
這個陳述句執行依然要3s以上, 另外
我是要判斷 (select count(1) from `imagelist_tbl` where imagelist_tbl.ArticleID =Article_tbl.ArticleID AND (`imagelist_tbl`.`ImageStatus` = 1) ) >0
這不是join 一下 就行吧?
就是判斷一下是否在這表中存在用
JOIN 是 只要一邊沒有值 就不會出現在結果集中嗎?
另外剛剛用mssql試了下, 在不加任何索引的情況下, 執行時間都不超過0.1s
uj5u.com熱心網友回復:
你看是這個意思不
--測驗資料
if not object_id(N'Tempdb..#T1') is null
drop table #T1
Go
Create table #T1([id] int,[name] nvarchar(22))
Insert #T1
select 1,N'張三' union all
select 2,N'李四' union all
select 3,N'王五' union all
select 4,N'趙六'
GO
if not object_id(N'Tempdb..#T2') is null
drop table #T2
Go
Create table #T2([id] int,[tid] int,[name] nvarchar(23))
Insert #T2
select 1,1,N'測驗1' union all
select 2,1,N'測驗2' union all
select 3,2,N'測驗3'
Go
--測驗資料結束
Select COUNT(1) from #T1 WHERE EXISTS(SELECT * FROM #T2 WHERE #T1.id=#T2.tid)
SELECT COUNT(DISTINCT #T1.id) FROM #T1 JOIN #T2 ON #T1.id=#T2.tid
uj5u.com熱心網友回復:
你看是這個意思不
--測驗資料
if not object_id(N'Tempdb..#T1') is null
drop table #T1
Go
Create table #T1([id] int,[name] nvarchar(22))
Insert #T1
select 1,N'張三' union all
select 2,N'李四' union all
select 3,N'王五' union all
select 4,N'趙六'
GO
if not object_id(N'Tempdb..#T2') is null
drop table #T2
Go
Create table #T2([id] int,[tid] int,[name] nvarchar(23))
Insert #T2
select 1,1,N'測驗1' union all
select 2,1,N'測驗2' union all
select 3,2,N'測驗3'
Go
--測驗資料結束
Select COUNT(1) from #T1 WHERE EXISTS(SELECT * FROM #T2 WHERE #T1.id=#T2.tid)
SELECT COUNT(DISTINCT #T1.id) FROM #T1 JOIN #T2 ON #T1.id=#T2.tid
--測驗資料
if not object_id(N'Tempdb..#T1') is null
drop table #T1
Go
Create table #T1([id] int,[name] nvarchar(22))
Insert #T1
select 1,N'張三' union all
select 2,N'李四' union all
select 3,N'王五' union all
select 4,N'趙六'
GO
if not object_id(N'Tempdb..#T2') is null
drop table #T2
Go
Create table #T2([id] int,[tid] int,[name] nvarchar(23))
Insert #T2
select 1,1,N'測驗1' union all
select 2,1,N'測驗2' union all
select 3,2,N'測驗3'
Go
--測驗資料結束
Select COUNT(1) from #T1 WHERE EXISTS(SELECT * FROM #T2 WHERE #T1.id=#T2.tid)
SELECT COUNT(DISTINCT #T1.id) FROM #T1 JOIN #T2 ON #T1.id=#T2.tid
執行結果, 速度還要2s左右, 依然很慢
uj5u.com熱心網友回復:
你看是這個意思不
--測驗資料
if not object_id(N'Tempdb..#T1') is null
drop table #T1
Go
Create table #T1([id] int,[name] nvarchar(22))
Insert #T1
select 1,N'張三' union all
select 2,N'李四' union all
select 3,N'王五' union all
select 4,N'趙六'
GO
if not object_id(N'Tempdb..#T2') is null
drop table #T2
Go
Create table #T2([id] int,[tid] int,[name] nvarchar(23))
Insert #T2
select 1,1,N'測驗1' union all
select 2,1,N'測驗2' union all
select 3,2,N'測驗3'
Go
--測驗資料結束
Select COUNT(1) from #T1 WHERE EXISTS(SELECT * FROM #T2 WHERE #T1.id=#T2.tid)
SELECT COUNT(DISTINCT #T1.id) FROM #T1 JOIN #T2 ON #T1.id=#T2.tid
執行結果, 速度還要2s左右, 依然很慢
比22秒快很多了
uj5u.com熱心網友回復:
你看是這個意思不
--測驗資料
if not object_id(N'Tempdb..#T1') is null
drop table #T1
Go
Create table #T1([id] int,[name] nvarchar(22))
Insert #T1
select 1,N'張三' union all
select 2,N'李四' union all
select 3,N'王五' union all
select 4,N'趙六'
GO
if not object_id(N'Tempdb..#T2') is null
drop table #T2
Go
Create table #T2([id] int,[tid] int,[name] nvarchar(23))
Insert #T2
select 1,1,N'測驗1' union all
select 2,1,N'測驗2' union all
select 3,2,N'測驗3'
Go
--測驗資料結束
Select COUNT(1) from #T1 WHERE EXISTS(SELECT * FROM #T2 WHERE #T1.id=#T2.tid)
SELECT COUNT(DISTINCT #T1.id) FROM #T1 JOIN #T2 ON #T1.id=#T2.tid
執行結果, 速度還要2s左右, 依然很慢
比22秒快很多了
就不能少于1s嗎? 同樣的資料量 用mssql 只要0.1s
uj5u.com熱心網友回復:
以文本方式貼出(不要貼圖!) explain select ....
及 show index from
**桔妹導讀:**深耕人工智能領域,致力于探索AI讓出行更美好的滴滴AI Labs再次斬獲國際大獎,這次獲獎的專案是什么呢?一起來看看詳細報道吧! 近日,由國際計算語言學協會ACL(The Association for Computational Linguistics)舉辦的世界最具影響力的機器 ......
我們經常在資料庫中使用 LIKE 運算子來完成對資料的模糊搜索,LIKE 運算子用于在 WHERE 子句中搜索列中的指定模式。 如果需要查找客戶表中所有姓氏是“張”的資料,可以使用下面的 SQL 陳述句: SELECT * FROM Customer WHERE Name LIKE '張%' 如果需要 ......
關于MySQL的二進制日志(binlog),我們都知道二進制日志(binlog)非常重要,尤其當你需要point to point災難恢復的時侯,所以我們要對其進行備份。關于二進制日志(binlog)的備份,可以基于flush logs方式先切換binlog,然后拷貝&壓縮到到遠程服務器或本地服務器 ......