การเพิ่มประสิทธิภาพแบบสอบถาม MySQL การเพิ่มประสิทธิภาพของการสืบค้น MySQL ชุดการสืบค้น MySQL ในที่เดียว
ฉันมีบทความเล็ก ๆ เกี่ยวกับฐานข้อมูลของโค้ด MySQL การเลือกและสิ่งที่ชอบ การทำงานกับฐานข้อมูลมักจำเป็นต้องสร้างจำนวนแถว COUNT () ด้วยสมองแบบเดี่ยวหรือไม่มีมันเพียงแค่เหยียบลงไป
การตรวจสอบโค้ด MySQL
ขอหมุนเวียนค่าจากจำนวนแถวในตาราง
ปิดราหุนกด้วยจิตใจ
การตรวจสอบโค้ด MySQL
ขอการหมุนจำนวนแถวในตารางให้ตรงกับใจที่กำหนด: var = 1
สำหรับ otrimannya kіlkohค่าpіdrakhunku ryadkov ที่มีจิตใจที่แตกต่างกันสามารถอยู่บนพื้นฐานของ vikonati kіlkazapitіvได้เช่น
การตรวจสอบโค้ด MySQL
แต่ในแถวของvipadkіvpіdkhіdดังกล่าวไม่สามารถใช้งานได้จริงและไม่เหมาะสมที่สุด ดังนั้นองค์กรของคำขอจึงมีความเกี่ยวข้องพร้อมเงินอุดหนุนจำนวนมากสำหรับการถอนผลลัพธ์ในคำขอเดียว ตัวอย่างเช่น
การตรวจสอบโค้ด MySQL
ในอันดับนี้ถ้ามีน้ำลงมาเพียงอันเดียวจนถึงฐานข้อมูลเราก็นำผลลัพธ์ที่มีจำนวนแถวสำหรับจำนวนจิตใจเพื่อล้างแค้นจำนวนจำนวนไอ้สารเลวเป็นต้น
ทบทวนรหัส TEXT
c1|c2|c3 -------- 1 |5 |8 |
ด้วยใบขอเสนอจำนวนสั้นๆ จากบัญชีธนาคาร คุณสามารถใช้ความปลอดภัยของเงินฝากและดอกเบี้ยกับฐานข้อมูลได้
ขั้นตอนต่อไปคือการแทนที่การวางไข่ COUNT ในแบบสอบถาม MySQL เดียว มิฉะนั้น IF โครงสร้าง (ใจ ค่า 1 ค่า 2) เช่นเดียวกับผลรวม SUM () จะถูกนำมาใช้ในรูปแบบใหม่ ช่วยให้คุณสามารถเลือกข้อมูลตามเกณฑ์ที่กำหนดภายในกรอบของคำขอเดียว จากนั้นสรุปข้อมูลเหล่านั้น และป้อนค่าตามผลลัพธ์
การตรวจสอบโค้ด MySQL
ดังที่เห็นได้จากคำขอควรส่งมอบไวน์แห่งแรงจูงใจอย่างรวบรัด แต่ความเร็วของ vikonnanny นี้ไม่เป็นที่พอใจซึ่งผลลัพธ์ที่คำขอจะเกิดขึ้น
ทบทวนรหัส TEXT
รวม|c1|c2|c3 -------------- 14 |1 |5 |8 |
ต่อไป ฉันจะนำสถิติสุ่มของความเร็วการบริโภคและสามตัวเลือกสำหรับการดื่มสำหรับการเลือกสติ๊กเกอร์ COUNT () เพื่อทดสอบความเร็วในการดื่มจึงนำไปดื่มเครื่องดื่มประเภทผิว 1,000 รายการพร้อมโต๊ะซึ่งน่าจะครอบคลุมมากกว่าสามพันบันทึก ในเวลาเดียวกัน มีการร้องขออาร์เรย์ SQL_NO_CACHE เพื่อปิดการใช้งานแคชของผลลัพธ์ในฐานข้อมูล
ชวิดคิสต์ วิโคนันยา
สาม Okremis: 0.9 วินาที
คำขอหนึ่งรายการคือpіdzapitami: 0.95 วินาที
คำขอหนึ่งรายการที่มีโครงสร้าง IF และ SUM: 1.5 วินาที
วิสโนวอค นอกจากนี้ เราอาจมีตัวเลือกสำหรับการสืบค้นฐานข้อมูล MySQL ด้วยการสืบค้น COUNT() ตัวเลือกแรกที่มีการสืบค้นมากกว่าหนึ่งรายการไม่ใช่ตัวเลือกที่ดีที่สุด แต่อาจมีผลลัพธ์ที่ดีที่สุดสำหรับความเร็ว การยังชีพอีกรูปแบบหนึ่งนั้นสะดวกกว่า แต่ในขณะเดียวกันความเร็วก็ต่ำ ฉันตัดสินใจเลือกตัวเลือกที่กระชับที่สามด้วยโครงสร้าง IF และ SUM ซึ่งสะดวกที่สุดฉันสามารถลดความเร็วของ vykonannya ได้รวมถึงสองตัวเลือกที่สอง ดังนั้นเมื่อได้รับมอบหมายให้เพิ่มประสิทธิภาพการทำงานของฐานข้อมูล ฉันขอแนะนำให้คุณลองใช้แบบสอบถามรูปแบบอื่น เพื่อล้างแค้นหน่วยความจำจาก COUNT () ประการแรก ความเร็วของการชนะนั้นใกล้เคียงกับผลลัพธ์ที่ดีที่สุด มิฉะนั้นองค์กรดังกล่าวที่อยู่ตรงกลางของแบบสอบถามเดียวก็มีประโยชน์
บทเรียนที่แล้วเราสะดุดล้มไปหนึ่งมือ หากเราอยากรู้ว่าใครเป็นคนสร้างธีม "จักรยาน" เราก็พยายามถาม:
แทนที่จะลบชื่อผู้เขียน เราได้ลบตัวระบุ yogo ออก Tse และ zrozumilo แม้กระทั่ง mi robili zap ในตารางเดียว - หัวข้อและชื่อของผู้แต่งหัวข้อจะถูกบันทึกไว้ในตารางถัดไป - Koristuvachi ดังนั้นเมื่อรู้จักตัวระบุของผู้เขียนแล้ว เราจำเป็นต้องเพิ่มคำขออีกหนึ่งคำขอ - ลงในตาราง Koristuvach เพื่อจดจำชื่อของเขา:
SQL ถ่ายโอนความสามารถในการรวมเครื่องดื่มในลักษณะเดียวโดยแปลงหนึ่งในนั้นให้เป็น subzapit (แอปพลิเคชัน) Otzhe เพื่อรับรู้ว่าใครเป็นคนสร้างธีมของ "จักรยาน" เราจึงโจมตีแบบปล้น:
Tobto หลังคีย์เวิร์ด ที่ไหนสำหรับจิตใจเราเขียนคำขออีกข้อหนึ่ง MySQL แปลงอินพุตแบบสุ่ม หมุน id_author=2 และส่งค่าไปยังข้อเสนอ ที่ไหนคำขอที่ใจแข็ง
ในคำขอหนึ่งอาจมี pidzapitiv ฉีดได้ไวยากรณ์มีดังนี้: เพื่อให้ความเคารพว่า pidzapit สามารถเลือกได้เพียงขั้นตอนเดียวซึ่งหมายถึงกลิ่นเหม็นที่จะหันไปหา sovnishnoy zapit การพยายามเลือกkіlkastovptsіvถูกนำไปอภัยโทษ
ขอเก็บคำขอซ่อมไว้อีกหนึ่งรายการเรารู้วิธีแจ้งในฟอรัมโดยกีดกันผู้เขียน "จักรยาน" เหล่านั้น:
ตอนนี้ เรามาทำให้เป็นเรื่องง่าย ในบางหัวข้อ ที่ทำให้ผู้เขียนท่วมท้นด้วย "จักรยาน" เหล่านั้น:
ลองคิดดูสิว่ามันทำงานอย่างไร
- คำขอที่พบบ่อยที่สุดใน MySQL คือ:
- ลบผลลัพธ์ (id_author=2) เพื่อส่งคำขอจริงตามที่ฉันเห็นในอนาคต:
- ลบผลลัพธ์ (id_topic: 4,1) เพื่อส่งต่อไปยังคำขอปัจจุบัน ตามที่ฉันเห็นในอนาคต:
- І เห็นผลคงเหลือ (topic_name: เกี่ยวกับการตกปลา, เกี่ยวกับการตกปลา) โตโต้ ผู้เขียน "จักรยาน" เหล่านั้นละทิ้งข้อมูลในหัวข้อ "เกี่ยวกับการตกปลา" สร้างโดย Sergiyem (id=1) และในหัวข้อ "เกี่ยวกับการตกปลา" สร้างโดย Light (id=4)
- ไม่แนะนำให้ทำการลงทุนมากกว่าสามครั้งในขั้นตอนการลงทุน Tse เพื่อนำไปสู่zbіlshennya vykonannya ชั่วโมงและการพับโค้ด
- ไวยากรณ์คำแนะนำของไฟล์แนบ ซึ่งพบได้ทั่วไปสำหรับการลงทุนส่วนใหญ่ แต่ไม่เหมือนกัน ตัวอย่างเช่น เราสามารถแทนที่คำขอได้
เขียน
โตโต้ เราสามารถชนะได้ในฐานะตัวดำเนินการ เช่น ชนะด้วยคีย์เวิร์ด WHERE
การเพิ่มประสิทธิภาพแบบสอบถาม MySQL
- MySQL
ในหุ่นยนต์ธรรมดา แม่จะถูกพาไปทางขวาพร้อมการอภัยโทษแบบเดียวกันในชั่วโมงที่เขียนเครื่องดื่ม
ในบทความนี้ ผมอยากจะกล่าวถึงประเด็นนั้น ราวกับว่าผมไม่จำเป็นต้องเขียนเพื่อถาม
- การคัดเลือกทุกสาขา
เลือก * จากตารางก่อนถึงชั่วโมงเขียน อย่าเลือกช่องทั้งหมด - "*" จัดเรียงฟิลด์ของคุณใหม่ ตามที่คุณต้องการฟิลด์ที่ถูกต้อง Tse เพื่อเร่งความเร็วจำนวนบรรณาการที่สั่นสะเทือนและเอาชนะได้ Krim tsgogo อย่าลืมเกี่ยวกับดัชนีว่าจะครอบคลุมอะไร การนำทางคุณต้องการฟิลด์ทั้งหมดในตารางจริงๆ แทนที่จะทำการแมปใหม่ ประการแรก จะปรับปรุงความสามารถในการอ่านโค้ด เมื่อ vikoriristannye zіrochki มันเป็นไปไม่ได้ที่จะจดจำ เช่นเดียวกับทุ่งนาในตารางโดยไม่ได้มองเข้าไปในนั้น ในอีกทางหนึ่ง จำนวนคอลัมน์ในตารางของคุณสามารถเปลี่ยนแปลงได้ทุกปี และหากวันนี้มีคอลัมน์ INT ห้าคอลัมน์ ในเดือนหนึ่งคุณจะได้รับฟิลด์ TEXT และ BLOB ซึ่งจะปรับปรุงการเลือก
- สอบถามที่รอบครับ.
จำเป็นต้องระบุให้ชัดเจนว่า SQL เป็นภาษาที่ทำงานเป็นทวีคูณ โปรแกรมเมอร์บางคนyakі zvikli คิดในแง่ของขั้นตอน mov สิ่งสำคัญคือต้องเปลี่ยนความคิดเป็นพหูพจน์ mov คุณสามารถจบมันได้ง่ายๆ โดยใช้กฎง่ายๆ ตามกฎง่ายๆ - อย่าดื่มเป็นรอบ ใช้อันที่คุณสามารถปล้นได้:1. วิบีร์กี
$news_ids = get_list("เลือก news_id จาก today_news");
ในขณะที่($news_id = get_next($news_ids))
$news = get_row("เลือกหัวข้อ, เนื้อหาจากข่าว WHERE news_id = ". $news_id);กฎนั้นง่ายกว่านั้นอีก - ถ้าคุณดื่มน้อยลงก็ดื่มเร็วขึ้น (ถ้าคุณต้องการมันเป็นกฎก็โทษ) อย่าลืมเกี่ยวกับโครงสร้าง IN() รหัสโฮเวอร์สามารถเขียนได้ด้วยรายการเดียว:
เลือกชื่อ เนื้อหา จาก today_news INNER JOIN ข่าว USING(news_id)2. ส่วนแทรก
$log = parse_log();
ในขณะที่($บันทึก = ถัดไป($log))
query("INSERT INTO บันทึกค่า SET = ". $log["value"]);!}!}การติดกาวและจับตัวอักษรหนึ่งตัวจะมีประสิทธิภาพมากกว่า:
INSERT INTO บันทึก (ค่า) ค่า (...), (...)3. อัปเดต
บางครั้งจำเป็นต้องเปลี่ยนจำนวนแถวในตารางเดียว ส่วนความหมายที่กำลังเปลี่ยนแปลงไปนั้น ทุกอย่างก็เรียบง่าย:
อัพเดทข่าว SET title="test" WHERE id IN (1, 2, 3).!}!}เนื่องจากเป็นค่าสำหรับบันทึกสกินที่มีความแตกต่าง จึงสามารถดำเนินการตามคำขอดังกล่าวได้:
อัพเดทข่าว ตลท
หัวเรื่อง = กรณี
เมื่อ news_id = 1 แล้ว "aa"
เมื่อ news_id = 2 แล้ว "bb" สิ้นสุด
ที่ news_id ใน (1, 2)การทดสอบของเราแสดงให้เห็นว่าเครื่องดื่มดังกล่าวชนะมากกว่าเครื่องดื่มอื่นๆ ปริมาณเล็กน้อยถึง 2-3 เท่า
- การดำเนินงาน Vikonannya ในฟิลด์ที่จัดทำดัชนี
เลือก user_id จากผู้ใช้ โดยที่ blogs_count * 2 = $valueสำหรับคำขอดังกล่าว ดัชนีไม่จำเป็นต้องได้รับการจัดทำดัชนี ก็เหมือนกับการมี blogs_count ของการจัดทำดัชนี Sob ดัชนีของ vikoristovuvsya เหนือฟิลด์ที่จัดทำดัชนีตามคำขอการเปลี่ยนแปลงไม่มีความผิด สำหรับคำขอดังกล่าว ให้ตำหนิฟังก์ชันการแปลงในอีกส่วนหนึ่ง:
เลือก user_id จากผู้ใช้ โดยที่ blogs_count = $value / 2;ตัวอย่างที่คล้ายกัน:
เลือก user_id จากผู้ใช้ WHERE TO_DAYS(CURRENT_DATE) - TO_DAYS(ลงทะเบียน)<= 10;คุณจะไม่สามารถบิดดัชนีในฟิลด์ที่ลงทะเบียนไว้ได้เหมือนกัน
เลือก user_id จากผู้ใช้ที่ลงทะเบียน >= DATE_SUB (CURRENT_DATE, INTERVAL 10 DAY);
จะ. - ทางเลือกของแถว
$result = mysql_query("SELECT * FROM table", $link);
$num_rows = mysql_num_rows($ผลลัพธ์);
หากคุณต้องการเลือกจำนวนแถวเพื่อแสดงความคิดเดียวกัน ให้เลือกตาราง SELECT COUNT(*) FROM และอย่าเลือกแถวทั้งหมดเพียงเพื่อปรับปรุงตัวเลข - การเลือกแถว
$result = mysql_query("SELECT * FROM table1", $link);
ในขณะที่($row = mysql_fetch_assoc($result) && $i< 20) {
…
}
หากคุณต้องการตัวเลือกมากกว่า n แถว ให้เลือก LIMIT แทนการเลือกแถวในโปรแกรม - วิกิซอร์ซ เรียงลำดับตาม RAND()
SELECT * จากตาราง ORDER BY RAND() จำกัด 1;หากตารางมีขนาดใหญ่กว่า ต่ำกว่า 4-5,000 แถว ดังนั้น ORDER BY RAND() จะเหมาะสมกว่า มีวิสคอนที่มีประสิทธิภาพมากกว่าสองรายการ:
เช่นเดียวกับในตาราง auto_increase คีย์แรกและไม่มีการโอเวอร์โฟลว์:
$rnd = rand(1, query("SELECT MAX(id) FROM table");
$row = query("SELECT * FROM table WHERE id = ".$rnd);เกี่ยวกับ:
$cnt = query("SELECT COUNT(*) FROM table");
$row = query("SELECT * FROM table LIMIT ".$cnt.", 1");
ซึ่งอาจจะดีกว่าหากตารางมีแถวจำนวนมาก - เข้าร่วม
เลือก
v.video_id
ชื่อ,
g.ประเภท
จาก
วิดีโอ AS v
เข้าร่วมทางซ้าย
link_actors_videos AS la ON la.video_id = v.video_id
เข้าร่วมทางซ้าย
นักแสดง AS a ON a.actor_id = la.actor_id
เข้าร่วมทางซ้าย
link_genre_video AS lg บน lg.video_id = v.video_id
เข้าร่วมทางซ้าย
ประเภท AS g ON g.genre_id = lg.genre_idจำเป็นต้องจำไว้ว่าในกรณีของ ligation จำนวนแถวในตัวแปรจะเพิ่มขึ้นในกรณีที่มีข้อต่อทางผิวหนัง JOIN สำหรับvipadkіvshvidkіvbuvaє razbiti podіbniyบัตรกำนัลที่คล้ายกันสำหรับ sprats ง่าย ๆ
- วิกิซอร์ซจำกัด
เลือก... จากตาราง จำกัด $start, $per_pageหลายๆ คนคิดว่าคำขอดังกล่าวจะเปลี่ยนระเบียน $per_page (เช่น 10-20) และนั่นเป็นความคิดที่ดี Vin และ spratsyuє shvidko สำหรับสองสามปาร์ตี้แรก นอกจากนี้หากจำนวนบันทึกมีขนาดใหญ่และจำเป็นต้องสืบค้น SELECT ... FROM table LIMIT 1000000, 1000020 ดังนั้นสำหรับการสืบค้นดังกล่าว MySQL จะเลือก 1000020 ระเบียน ล้านแรกและครบรอบ 20 ปี ซึ่งไม่เร็วนัก ไม่มีวิธีแก้ไขปัญหาเล็กน้อย มีคนจำนวนมากเกินไปเพียงแค่รวมจำนวนด้านที่มีอยู่เข้ากับจำนวนที่สมเหตุสมผล นอกจากนี้ยังสามารถเร่งความเร็วการสืบค้นที่คล้ายกันไปยังดัชนีที่ครอบคลุมหรือโซลูชันของบริษัทอื่น (เช่น สฟิงซ์)
- ในการอัปเดตคีย์ซ้ำ
$row = query("SELECT * FROM table WHERE id=1");ถ้า($แถว)
แบบสอบถาม ("อัปเดตตาราง SET คอลัมน์ = คอลัมน์ + 1 WHERE id = 1")
อื่น
query("INSERT INTO table SET column = 1, id=1");โครงสร้างที่คล้ายกันสามารถแทนที่ได้ด้วยคำขอเดียวเพื่อทำความเข้าใจการมองเห็นของคีย์หลักหรือคีย์เฉพาะโดยช่อง id:
แทรกลงในคอลัมน์ SET ของตาราง = 1, id = 1 บนคอลัมน์การอัปเดตคีย์ซ้ำ = คอลัมน์ + 1
ฉันได้เขียนเกี่ยวกับนะริซโนมานิชิแล้ว แบบสอบถาม SQLแต่ถึงเวลาแล้วที่จะพูดถึงการพับสุนทรพจน์เช่น แบบสอบถาม SQL สำหรับการเลือกบันทึกจากตารางจำนวนหนึ่ง.
หากเราทำงานร่วมกับคุณบนโต๊ะเดียวกัน ทุกอย่างจะง่ายขึ้นมาก:
เลือก name_of_required_fields จาก name_table_WHERE smart_selection
ทุกอย่างเรียบง่ายและไม่สำคัญ แต่ด้วย เลือกโต๊ะกลายเป็นสิ่งที่พับได้มากขึ้น ปัญหาประการหนึ่งคือการไม่มีชื่อฟิลด์ ตัวอย่างเช่น ตารางสกินมีฟิลด์ รหัส.
ลองดูคำขอนี้:
เลือก * จาก table_1, table_2 โดยที่ table_1.id > table_2.user_id
Rich ที่ไม่ได้จัดการกับคำขอที่คล้ายกัน ฉันยอมรับว่าทุกอย่างง่ายกว่านี้โดยคิดว่าที่นี่คุณต้องตั้งชื่อตารางก่อนชื่อของฟิลด์ ในความเป็นจริงมันช่วยให้คุณสามารถ uniqnute ระหว่างชื่อฟิลด์เดียวกันได้ อย่างไรก็ตาม การพับไม่ได้อยู่ที่อะไร แต่อยู่ที่ อัลกอริทึมที่คล้ายกับแบบสอบถาม SQL.
อัลกอริทึมของความก้าวหน้าของหุ่นยนต์: ใช้รายการแรกจาก ตารางที่ 1. จะถูกนำไป รหัสบันทึกไหน ตารางที่ 1. ต้าหลี่ดูเหมือนโต๊ะ ตาราง_2. І บันทึกทั้งหมดจะถูกเพิ่ม โดยค่าฟิลด์ ผู้ใช้_idน้อย รหัสที่เลือกเข้ามา ตารางที่ 1. ตามลำดับนี้หลังจากการวนซ้ำครั้งแรกอาจปรากฏขึ้น 0 ถึงไม่จำกัดจำนวนบันทึกผลลัพธ์ ในการวนซ้ำครั้งถัดไป จะมีการบันทึกบันทึกถัดไปของตาราง ตารางที่ 1. ฉันกำลังดูโต๊ะทั้งหมดอีกครั้ง ตาราง_2และข้าพเจ้าก็จะเจริญสติต่อไป table_1.id > table_2.user_id. รายการทั้งหมดที่ทำให้ฉันพอใจ dodayutsya กับผลลัพธ์ ที่ทางออก คุณสามารถมีบันทึกได้จำนวนมาก และหลายครั้งคุณสามารถเปลี่ยนผลรวมของทั้งสองตารางได้
ถ้าคุณเข้าใจ ถ้าคุณฝึกฝนหลังจากครั้งแรกก็เยี่ยมมาก แต่ถ้าคุณไม่เข้าใจ แล้วอ่านจุดต่างๆ คุณจะเจาะลึกท่าเรือได้ไม่เพียงพอ ถ้าเข้าใจก็จะง่ายขึ้น
ซึ่งไปข้างหน้า แบบสอบถาม SQLเช่นนี้ไม่ค่อยมีvikoristovuєtsya Vіn buv เพิ่งได้รับเพื่อ คำอธิบายอัลกอริธึมการเลือกจากจำนวนตาราง. และตอนนี้เรามาดูสารเติมแต่งเพิ่มเติมกันดีกว่า แบบสอบถาม SQL. สมมติว่าเรามีตารางสองตาราง: พร้อมสินค้า (ฟิลด์ เจ้าของ_id, vіdpovіdalnogoสำหรับ รหัส vlasnik ถึงสินค้า) และ z koristuvachami (ฟิลด์ รหัส). เราต้องการอย่างใดอย่างหนึ่ง การสำรองข้อมูล SQL otrimati บันทึกทั้งหมดยิ่งกว่านั้น schob ที่ผิวหนัง bula іnformatsіyaเกี่ยวกับ coristuvacha ที่ yogo หนึ่งผลิตภัณฑ์ ในรายการถัดไปมีข้อมูลเกี่ยวกับ coristuvach เดียวกันและผลิตภัณฑ์ถัดไป หากสหายของ kogo koristuvach จบลงให้ไปที่ koristuvach ที่น่ารังเกียจ ในลักษณะนี้เราจะตำหนิทั้งสองตารางและรับผลซึ่งในนั้น การบันทึกผิวหนัง.
แบบสอบถามที่คล้ายกันแทนที่ 2 แบบสอบถาม SQL: บนตัวเลือกโต๊ะพร้อมสินค้าและโต๊ะพร้อมกล่อง จนกว่าจะถึงตอนนั้น คำขอดังกล่าวจะถูกส่งหนึ่งครั้งไปยังvіdpovіdnіst koristuvacha ว่าสินค้า yogo
ตัวเขาเองขอสิ่งที่ง่ายกว่านี้ (ตามที่คุณเข้าใจอันที่แล้ว):
SELECT * จากผู้ใช้ ผลิตภัณฑ์ โดยที่ users.id = products.owner_id
อัลกอริทึมที่นี่งุ่มง่ามอยู่แล้ว: บันทึกแรกของตารางถูกถ่าย ผู้ใช้. มารับกันเลย รหัสและบันทึกทั้งหมดจากตารางจะถูกวิเคราะห์ สินค้า, เพิ่มไปยังผลลัพธ์ ti, yi เจ้าของ_idโดริฟนยูє รหัสจากตาราง ผู้ใช้. ในลำดับนี้ ในการวนซ้ำครั้งแรก สินค้าทั้งหมดจะถูกนำมาจากโคริสตูแวคครั้งแรก ในการทำซ้ำครั้งอื่น สินค้าทั้งหมดของผู้สื่อข่าวรายอื่นจะถูกเลือก
จามรีบาชิต์ แบบสอบถาม SQL สำหรับการเลือกจากตารางจำนวนหนึ่งไม่ใช่วิธีที่ง่ายที่สุด แต่ความเศร้าโศกของพวกเขานั้นใหญ่โต ดังนั้นคนชั้นสูงจึงสามารถเอาชนะคนชอบดื่มได้