Archive for February, 2012

เรื่องเล่า Twitter 23/02/2012 – 29/02/2012

  • ไปนอนแล้ว เหลืออีก 21 Blog กว่าจะหมด >o<' 2012-02-25
  • I'm at หน้าเมืองเอก ม.รังสิต http://t.co/8GATPxDG 2012-02-25
  • I'm at Rangsit University w/ @zne3 http://t.co/rF3aW3YR 2012-02-25
  • ขณะรอแฟนดู cnblue เราก็มาวิเคราะห์ว่าเราต้องทำกี่ task ในการจัดการงานที่ค้างอยู่สรุปมี task ด่วนที่ต้องทำทั้งหมด 53 tasks !!! 2012-02-25
  • Ifttt : เมื่อนำ Service จากต่าง ๆ มาใช้งานร่วมกัน | Rabbitinblack – http://t.co/EyeYjX1q 2012-02-26
  • The Largest jQuery Class in the World | Nettuts+ – http://t.co/ZpWlRpv7 2012-02-26
  • [Wordpress] ตั้งค่า FTP ไว้ จะได้ไม่ต้องใส่บ่อย ๆ | Rabbitinblack – http://t.co/dh7OhHYz 2012-02-26
  • วิธีใช้ Content Aware Fill และ Content Aware Scale ของ Photoshop CS5. #promo http://t.co/yuRvxfhX 2012-02-26
  • ตอนแรกกะไปทำ K-Max MRT Debit card เจอค่าธรรมเนียมปีละ 550 บาท !! ไม่ใช้ก็ได้ฟระ 2012-02-26
  • ดูๆแล้วค่าธรรมเนียบ 550 บาทถ้าได้ใช้ค่ารักษาพยาบาลจากอุบัติเหตุนี้มันก็ดีอยู่เหมือนกันนะเพิ่มอีก 300 บาท 2012-02-26
  • ยังไม่รู้สึกอยากทำงานเลยแม้แต่น้อย >.<' ให้ตายสิ ดูหนังสักเรื่องก่อนละกัน 2012-02-26
  • Don't waste my time !! ประโยคเท่ห์วะ 2012-02-26
  • Almondbar 10 บาทอร่อยดีแหะ 2012-02-26
  • Malaeng-Mao Investor: เครดิตภาษี – http://t.co/cmiXV8f2 2012-02-26
  • 2-2 !!!!!! 2012-02-27
  • ลุ้นแสดดดดด 2012-02-27
  • drama แสดดดด 2012-02-27
  • ลุ้นแสดดดดดด 2012-02-27
  • เรื่องราวของ คนไทยคนแรก ที่ได้ทำงานที่ Twitter | http://t.co/wbOixorl ( ALL ABOUT REVIEWS ) – http://t.co/LO0u4Cqb 2012-02-27
  • Tuning MySQL : Case Study OBVOC/OBHUNTER. #promo http://t.co/Z9JbTuct 2012-02-27
  • เจอ Cristiano ตอกส้นเข้าซะงั้น !!! 2012-02-27
  • หลังจากเปลี่ยนเครื่องใหม่ load avg ไม่เคยถึง 4 2012-02-27
  • รับฟังการพูดถึงแบรนด์ของคุณในเครือข่ายสังคม (2) – http://t.co/x1eZvYHX 2012-02-27
  • ลองส่งเล่นๆ – http://t.co/j3w1Bigp 2012-02-27
  • พึงเข้าใจ Concept Single Sign On เลยทำแบบกากๆแต่ใช้งานได้ไปก่อน 2012-02-28
  • ชอบ Idea ที่ Smartphone กับ PC จะเป็นหนึ่งเดียวกันได้เลย มันสุดยอดมากๆ 2012-02-28
  • ชอบ Idea เก็บมือถือไว้ใน Notebook แถม Charge ได้ในตัวสุดยอดเลย แต่ OS ดูใช้ยากๆแหะ – http://t.co/gaUtPWje 2012-02-28
  • Orange "Santa Clara" สมาร์ทโฟน Atom ตัวแรกในยุโรป | Blognone – http://t.co/etm9x2zu 2012-02-28
  • ใส่ตัวเลขเรียงลงมาในโปรแกรม Numbers [Mac]. #promo http://t.co/8eU2BVy9 2012-02-28
  • วันนี้ Offline หนึ่งวัน 2012-02-28
  • ตัวอย่างภาพจาก Nokia 808 PureView มือถือที่มีกล้องความละเอียดสูงที่สุดในโลก – http://t.co/11cObM6Q 2012-02-28
  • [MWC] Telefonica บอกมือถือ Boot to Gecko จะถูกกว่า iPhone สิบเท่า! | Blognone – http://t.co/VCNQYYtS 2012-02-28
  • Today is my learning day so I am learning Business Model Generation 2012-02-28
  • อือหือเห็นธุรกิจ Zipcar แล้ว Cool มากเลย !! 2012-02-28
  • Business Model แบบ Zipcar นี้ต้องลงทุนเยอะมาก แต่อ่านแล้วแบบว่า โห้นี้และที่ต้องการเลย เพราะโดมเองไม่อยากมีรถแต่อยากนานๆใช้ที 2012-02-28
  • แต่จริงๆพอสังเกตุแล้วจริงๆ รถเช่าทั่วไปในไทยก็สามารถทำได้นะ เพียงแต่พลิกวิธีการ Present สักหน่อย ไม่ต้องเหมือนแต่ Feel ได้อยู่ 2012-02-28
  • Google Suggest เดียวนี้ฉลาดดดจริง รู้ว่าเราหาเรื่องอะไร มันก็จะเอาคำที่เกี่ยวกันเป็น Suggest ไว้ให้เมพขิงๆ !! 2012-02-28
  • จากการศึกษาคร่าวๆการ Present รถเช่า แบบ Zipcar เข้าใจได้ง่ายสุด ส่วนรถเช่าในไทยแต่ละอัน เข้าใจยาก 2012-02-28
  • กู้แบบ Peer-to-Peer ด้วย Zopa ! มันก็คือเหมือนการยืมเงินแบบรุ่นพ่อแม่เรา แต่ Online และมีมาตรฐานแบบ Bank ! 2012-02-28
  • 16.30 ละเร็วจัง ยังเหมือนไม่ได้พักเลยแหะ 2012-02-28
  • ออกจากบ้านดีกว่า 2012-02-28
  • วิธียกเลิก fulltext stopword ใน MySQL – http://t.co/OYTSrYfB 2012-02-29
  • ประสบการณ์ 8… http://t.co/4x5j9WVX 2012-02-29
  • 79 เท่าเดิมแล้นนน !! แถมออกกำลังกายสนุกกว่าเดิมด้วย ชอบ DailyChallenge 2012-02-29
  • ลด Cost ค่าโทรศัพท์จากเดือนที่แล้ว 3000 เหลือ 1500 ทุกอย่างอยู่ที่ว่าจะจัดการรึเปล่าจริงๆ XD 2012-02-29
  • Magnet Link นี้ Advanced นะเนี้ยชอบๆๆ 2012-02-29
  • Working on Slide 2012-02-29
  • เราคงถึงเวลาต้องทำแล้วสินะ ! 2012-02-29
  • ทดสอบการโพส 2012-02-29
  • โพสรูป http://t.co/1wU9neEz 2012-02-29
  • hello world 2012-02-29
  • Drinkify – http://t.co/biFXsAVp 2012-02-29
  • 100 รูปแบบการใช้งานการเฝ้าระวังเครือข่ายสังคมออนไลน์ – http://t.co/h3NDw7kx 2012-02-29
  • I'm at Pasta de Waraku (CentralPlaza Grand Rama 9, 7th Fl., Huai Kwang) http://t.co/Oz3FiRHR 2012-02-29
  • Evian is great for life XD 2012-02-29

วิธียกเลิก fulltext stopword ใน MySQL

ยิ่งอยู่กับ Fulltext นานจึงรู้จักดีขึ้นเจอปัญหาที่ต้องแก้มากขึ้น เลยทำให้รู้ว่า คำว่า “Me” เป็นคำที่อยู่ใน Stopword แถมมีคำอื่นๆอีก ที่เราอาจจะต้องใช้หาใน Fulltext ผมเลยต้องการ Disabled Stopword ทั้งหมดแล้วปล่อยให้เป็นหน้าที่ของ ft_min_word_len กับ ft_max_word_len เป็นตัวทำ index ก็พอ เรามาดูวิธียกเลิกบน centos กัน

 

  1. เข้าไปที่ไฟล์ /etc/my.cnf เพิ่ม
    [mysqld]
    ft_stopword_file=”"
    [myisamchk]
    ft_stopword_file=”"
    โดยเหตุผลที่เพิ่มใน mysqld เพื่อบอก mysql ว่าหลังจากนี้ไม่ต้องใช้ stopword ละนะ แล้วที่เราบอก myisamchk เพื่อบอกว่า เวลา repair ให้ใช้ config นี้แทนแบบ default นะทำให้เมื่อเรา REPAIR TABLE `tbl` QUICK แล้วมันจะได้ไม่ใช้ stopword
  2. Restart MySQL
  3. ไปใน Database ที่มี Table Fulltext แล้วใช้คำสั่ง “REPAIR TABLE `table` QUICK” เป็นอันเสร็จครับ

ส่วนใครต้องการศึกษาวิธีเปลี่ยน ft_min_word_len , ft_max_word_len ก็เป็นแบบเดียวกันครับ ยกตัวอย่างเช่น

[mysqld]
ft_min_word_len=2
ft_max_word_len=56
ft_stopword_file = “”; #Disable Stopword String

[myisamchk]
ft_min_word_len=2
ft_max_word_len=56
ft_stopword_file = “”; #Disable Stopword String

เป็นต้นครับโดยต้องขอบคุณ Reference ทั้งสองที่นี้ไว้ด้วยครับ

http://dev.mysql.com/doc/refman/5.5/en/fulltext-stopwords.html

http://www.network-technologies.org/Projects/Virtual_Brain_Online.php/article/rebuild_repair_alter_MySQL_FULLTEXT_index/

วิธี Search MySQL ด้วย Fulltext Order By Query เร็วและแรง 3

จากความเดิมสอนตอนที่แล้ว ตอนหนึ่ง , ตอนสอง วันนี้ผมจะมาเสริมเพิ่มเติมในส่วนที่ผม ใช้ประสบการณ์ที่ทำมากับ OBVOC มาเล่าสู่กันฟังนะครับ

  • การใช้ WHERE id IN (FulltextSubquery) แบบ Subquery บางกรณีก็เร็ว แต่บางกรณีก็ยังช้าอยู่
    • ถ้าเงื่อนไขของ Query ก่อนจะเปลี่ยนมาใช้แบบนี้มี OR  บางทีก็ควรรวม OR เข้าไปใน Subquery
    • ถ้าเงื่อนไขของ Query มีแต่ AND ไม่ควรทำ Subquery
  • การใช้ WHERE id IN (IDFromPHPThatExecuteQuery) แบบเอา PHP ไปรัน Query ได้ ID แล้วเอามาใส่เร็วทุกกรณี แต่กิน CPU ดังนั้นถ้า CPU ไม่พอ = ช้า
  • การเรียงจากซ้ายไปขวาของ Where มีผลต่อความเร็วโดยผมแนะนำว่าเรียงจาก Primary > Fulltext > Unique > Index ตามลำดับครับ
  • ในบางครั้งการรวมเงื่อนไขด้วย UNION การ Query แบบ Intersect , Except พร้อมกับ Fulltext นั้นก็ช่วยให้ Query เร็วขึ้น (เสียดาย MySQL ต้องทำ Intersect กับ Except ค่อนข้างยาก)

ผลสรุปคือนอกจากการทำ Query ที่ดีแล้ว การทำ Index ดีที่แล้ว ก็ยังต้องดูเป็นว่าตอนนี้ระบบเรามันช้าเพราะ Query หรือว่า เครื่องมันไม่ไหวแล้วกัน แน่เช่น ถ้าเราสามารถอัด Ram พอสำหรับ Key Buffer แล้วก็มี tmpdir ที่เป็น ramdisk แล้วนั้นแล้ว มันยังช้าอยู่ก็แปลว่าเป็นที่ Query หรือไม่ก็ CPU น้อยไปแล้ว ดังนั้นการลุยกับ Fulltext นั้นลองผิดลองถูกกันพอสมควร แต่อย่าลืมสรุป Basic ด้านบน โดยเฉพาะเรื่องซ้ายไปขวานั้นเรื่องจริงที่สุด

Next Page »