How to fixed HeidiSQL message : Cannot find a usable libmysql.dll

Here is the dialog problem’s notification when you download an executable one of HeidiSQL client and try  to connect to MySQL server without  the properly setting environment.

Untitled

You can fixed this problem by set the path for MS Windows’s environment to  libmysql.dll for your PATH. Here are the steps.

  1. Press  [windows btn] + R   to open Run dialog , then type the following command into the text box
    sysdm.cpl ,3
  2. On the advance tab press  [ Environment Variables ]  button . You will found the environment dialog then add the folder where you place libmysql.dll  at the end of the line like this , ( depends on your environment)
    UntitledIf you have not libmysql.dll in your machine , download it Here
  3. Try to run it again . Hope this help !

การคิวรี่ข้อมูลแบบ buffered และ unbuffered ของ MySQL ใน PHP

เมื่อทำการคิวรี่ข้อมูลใน mysql มันจะทำในลักษณะ buffer เป็นหลัก ข้อดีของวิธีการทำแบบนี้คือ ผลลัพธ์จากการคิวรี่จะถูกส่งจาก MySQL Server ไปยัง PHP และเก็บไว้ใน memory ของ PHP process ซึ่งทำให้สามารถทำ Operation หลายๆ อย่างได้ เช่น นับจำนวนแถว ย้าย pointer ของ current result นอกจากนี้ยังทำให้สามารถคิวรี่ข้อมูลต่อไปได้โดยใช้คอนเนคชั่นเดิม ขณะที่ยังทำงานบน result set ได้ ข้อเสียคือ ยิ่งขนาดของ result set ใหญ่เท่าไหร่ มันก็ต้องใช้หน่วยความจำมากขึ้นไปเท่านั้น หน่วยความจำจะถูกใช่้งานต่อไปจนกว่าทุก ๆ การอ้างถึงของของ result set นั้นจะถูกยกเลิก หรือ บังคับให้ฟรีหน่วยความจำ (จะทำโดยอัตโนมัติ ระหว่างรีเควสจบตัวสุดท้าย) คำว่า “store result” ใช้แทนโหมดนี้ เนื่องจากผลลัพธ์ทั้งหมดของ result set นั้นถูกเก็บไว้

Read more

ข้อดีและข้อเสียของ MySQL store procedure

ข้อดี

– เพิ่ม performance ให้กับแอพพลิเคชั่น เมื่อถูกสร้างขึ้น จะถูกคอมไพล์และเก็บไว้ใน database แต่ mysql นั้นเขียน stored procedure ในรูปแบบที่แตกต่างไปเล็กน้อย คือ มันจะถูก compile on demand เท่านั้น และหลังจาก compile เสร็จจะเก็บไว้ใน cache ซึ่งจะเก็บไว้ใช้ใน 1 connection ซึ่งหมายความว่ามันจะมีประโยชน์ และเพิ่ม speed ได้ถ้ามีการเรียกใช้หลายๆ ครั้งใน 1 connection หากไม่แล้วก็จะทำงานเหมือนกับ query ธรรมดา(ควรพิจารณาดูว่าจะเขียนหรือไม่โดยใช้หลักการข้อนี้)
– ช่วย ลด traffic ระหว่าง application และ database server (โดยเฉพาะอย่างยิ่ง กรณีที่ อยู่คนละเครื่องแล้วต้องมีการส่ง query เส้นยาวๆ หลายๆ ครั้ง ซึ่งต่างกับ stored procedure ซึ่งจะมีการส่งแค่ ชื่อฟังก์ชั่น และ parameter เท่านั้น)
– ช่วยในการใช้ซ้ำและ ซ่อนเร้นการทำงาน ในกรณีที่นำไปใช้กับ application อื่น เนื่องจากแสดงเป็น รูปแบบ interface ของ database เท่านั้น ซึ่งเป็นการลดงานของ developer
– ความปลอดภัยของ store procedure จำกัดโดย db admin ซึ่งสามารถกำหนด permission ต่างๆ ในการเรียกใช้ stored procedure ได้

ข้อเสีย
-ถ้าใช้ stored procedure เป็นจำนวนมาก มันก็จะกินทรัพยากรมากตามไปด้วย นอกจากนี้ ถ้ามีการเรียกใช้ logical operation จำนวนมากๆ ใน store procedure(ข้อนี้ต้องระวังให้ดี) การใช้งาน CPU ก็จะเพิ่มขึ้นอีก เนื่องจาก database server นั้นไม่ได้ถูกออกแบบมาให้ทำงานกับ logical operation
-โครงสร้างของ store procedure นั้นยากต่อการพัฒนา ในกรณีที่การทำงานในรูปแบบซับซ้อน มากๆ
-MySQL ไม่มีเครื่องมือสำหรับ debug store procedure
-ยากที่จะพัฒนาและดูแล stored procedure ซึ่งจะต้องใช้ skill ที่สูงพอสมควร และนักพัฒนาส่วนใหญ่ไม่ค่อยใส่ใจเรื่องนี้ ซึ่งจะนำไปสู่ปัญหาทั้งด้านการพัฒนาและดูแลระบบ ( ถ้าไม่ well document จริงๆ ผมก็ไม่แนะนำให้ใช้นะครับ )

แปลบางส่วนจาก

http://www.mysqltutorial.org/introduction-to-sql-stored-procedures.aspx