//*******方式1:使用agency的targetusername
select com.productid,com.name,com.addtime,
sum(
case rev.isread
when 1 then 1
else 0
end )
as readed,
sum(
case rev.isread
when 0 then 1
else 0
end )
as unreaded,
count(rev.productid) as amount
from
agency as rev
inner join
product as com on rev.productid=com.productid
where rev.targetusername='0576sy.cn'
group by com.productid,com.name,com.addtime,com.orderid
order by com.orderid
//*******方式二使用product.username
select com.productid,com.name,com.addtime,
sum(
case rev.isread
when 1 then 1
else 0
end )
as readed,
sum(
case rev.isread
when 0 then 1
else 0
end )
as unreaded,
count(rev.productid) as amount
from
agency as rev
inner join
product as com on rev.productid=com.productid
where com.username='0576sy.cn'
group by com.productid,com.name,com.addtime,com.orderid
order by com.orderid
//*************end
使用product.username時查詢分析器顯示使用 hash match 來實現inner join ,上表是product,下表是agecny,因為productid在agency表中是外來鍵故效能比較差.
同時指定條件com.useranme='0576sy.cn' and rev.targetuseranme='0576sy.cn' 時,發現查尋分析器會忽略com.useranme條件,這說明查詢分析器自身的優化引擎也認可,採用rev.targetusername,當然在agency中引入了targetusername帶來了資料冗餘,另外時間成本降低了,空間成本卻增加了.
乙個簡單的PHP留言板
如果你已經有一定程式設計基礎請自行出門左轉 接下來我們就直接開始。首先構建乙個進入的主頁面 這是首頁 此處混編 接下來就是書提交到資料庫,此處對資料進行驗證一下,看是否提交了空資料 展示介面就是將已經寫好的資料,從資料庫中迴圈出來即可。include conn.php perpagenum 5 定義...
有感於乙個使用者的留言
今日有人在 discuz nt官方論壇發帖,勾起了我許多想說的話。nt,我說兩句。nt的測試版開始我便使用了她。已經1年多過去了。她的進步看在眼裡,不足也放在心裡。我起初是為了學習.net技術而選擇了discuz nt,因為其開源專案。但事與願為,本人沒有細心去研究discuz nt。而僅僅是從di...
express 框架實現乙個留言板
一 express e blog 二 cd blog cnpm install npm start 三 riews index.ejs 改提交介面 四 var add require rotes add 五 routes add.js rotes.post function req,res 六 連線...