Board logo

標題: 簡單SQL問題 [打印本頁]

作者: 清仔    時間: 2017-4-14 21:13     標題: 簡單SQL問題

有兩個Tabel

books (50000 rows)
-id
-isbn

reviews (600000 rows)
-id
-book_id
-isbn

e+ book_id果個Col空左…想填番晒佢
用咩方法最快?用query load到死左都味得…因為reviews太多row
作者: snoopy11hk    時間: 2017-4-14 21:54

UPDATE REVIEWS
SET BOOK_ID = (SELECT ID FROM BOOKS WHERE BOOKS.ISBN = REVIEWS.ISBN)
作者: 清仔    時間: 2017-4-14 23:54

本帖最後由 清仔 於 2017-4-14 23:57 編輯
  1. UPDATE reviews r
  2. INNER JOIN books b ON r.isbn13 = b.isbn13
  3. SET r.book_id = b.id
複製代碼
最后我咁完成
原來慢…係我個local 行得好慢…唔知點解
作者: buckethead    時間: 2017-6-5 22:52

最后我咁完成
原來慢…係我個local 行得好慢…唔知點解
清仔 發表於 2017-4-14 23:54


    如用Oracle,有興趣知costing會差幾錢?
作者: ckmakit    時間: 2017-6-6 09:06

60萬隻好少...
再多data既中間做埋commit會好d...
作者: KinChungE    時間: 2017-6-6 09:17

最后我咁完成
原來慢…係我個local 行得好慢…唔知點解
清仔 發表於 2017-4-14 23:54


你部機唔夠ram / set得好少ram俾個db server?
作者: Jimmy0911    時間: 2017-6-6 12:36

回覆 1# 清仔


btw 點解要reviews度加埋isbn
作者: 清仔    時間: 2017-6-6 15:58

回覆  清仔


btw 點解要reviews度加埋isbn
Jimmy0911 發表於 2017-6-6 12:36 PM


因為要用isbn 做book 既primary ref,例如第時外邊買d 書既DB 入黎…就可以merge到
咁點解要有個primary key id 係因為個framework 既naming convention,如果book 既id 唔係id 既話…咁就要改好多code ,同埋做唔到code generation (用緊cakephp 2.3)
作者: Jimmy0911    時間: 2017-6-6 16:43

回覆 8# 清仔


你有book_id@reviews link with id@book
then no need isbn@reviews table
作者: 清仔    時間: 2017-6-6 17:07

本帖最後由 清仔 於 2017-6-6 17:08 編輯
回覆  清仔


你有book_id@reviews link with id@book
then no need isbn@reviews table
Jimmy0911 發表於 2017-6-6 04:43 PM


其實d review 有部份係amazon 果度抄落黎…
咁個review crawler 係靠個ISBN

比如話日后我地要import 第二個站抄落黎個review
import 入review table果時如果無isbn就會好煩!每次都要search一次book table 再囉番個book id

因為我用navicat 入要既導入精靈去做import…佢有得比你簡col mapping… 同update fields
如果無左isbn咁就用唔到導入精靈…

當然如果寫code或者union左佢先再import係可能…但花時間
導入精靈既好處係…個客比個excel file 你…就可以直接import

簡單講…我係方便自己做野同save time
如果之后確保無新review 入黎…其實可以drop左果isbn的
作者: Jimmy0911    時間: 2017-6-6 19:00

回覆 10# 清仔

oh咁就依家咁方便好多!
作者: chi251155    時間: 2017-6-6 20:15

回覆 10# 清仔


    你入review嗰陣時scan一次個book table,做個ISBN to ID既map,或者做cache都係好快,況且import review又唔趕時間
作者: 清仔    時間: 2017-6-6 22:37

回覆  清仔


    你入review嗰陣時scan一次個book table,做個ISBN to ID既map,或者做cache都係好快,況 ...
chi251155 發表於 2017-6-6 08:15 PM


因為我import 係用navicat 呀… 入review嗰陣時scan一次個book table的話,
當然接到個客既excel 之后…我要export book table 出黎?跟住兩個excel 又唔知點merge…
或者import 左入去… 再填番個book id 都得既…用script …

另外我好驚如果primary key index 被reset …咁就大件事…全部review 即時廢晒…
其實isbn 個col唔會囉黎運算…遲下個db真係太大…我又有信心…我會drop左佢…
作者: 清仔    時間: 2017-6-6 22:45

回覆  清仔

oh咁就依家咁方便好多!
Jimmy0911 發表於 2017-6-6 07:00 PM

http://blog.csdn.net/dreamback1987/article/details/8466088
咁樣的…選左個excel…佢會問你要邊個sheet,跟住要邊d Col
target col 同source col mapping(佢自己會detect到excel 個header col name!),import…就入晒落去DB
作者: woodlcw    時間: 2017-6-7 11:54

點解唔用ISBN做ID?
作者: 清仔    時間: 2017-6-7 14:40

點解唔用ISBN做ID?
woodlcw 發表於 2017-6-7 11:54 AM

因為用ISBN 做ID的話… 就唔可以用到code generation
https://book.cakephp.org/3.0/en/bake/usage.html

係Cakephp…當我define左個table 叫 reviews
然後入面有user_id 同 book_id 兩個col的話
之后打個command bake 就會generate review modal, view (index, add, edit, admin)同埋個controller 出黎…而已因為naming convention 關係…佢知道埋review 同user 同book 既關係,個modal 都唔駛自己寫…





歡迎光臨 電腦領域 HKEPC Hardware (https://h0.hkepc.com/forum/) Powered by Discuz! 7.2