Parinya.NET

บล็อกของสาวกแห่งลัทธิ Software as a Service

Archive for the 'Database' Category

การ Import, ไฟล์ UTF-8, phpMyAdmin และ MySQL

จดไว้กันลืม เพราะผมไม่ค่อยได้ลงมาทำทางเทคนิคบ่อยนัก พอดีว่าต้องเอาข้อมูลมายัดใส่ฐานข้อมูล MySQL แต่บังเอิญว่าไม่ได้ทำนานแล้ว เลยทำผิด ๆ ถูก ๆ หลง ๆ ลืม ๆ ต้องลองหลายรอบกว่าจะได้ เลยคิดว่าเอามาสาธยายเป็นขั้นเป็นตอนไว้ดีกว่า เผื่อคนอื่นจะได้รับอานิสงค์ไปด้วย ขั้นตอนการ Import ไฟล์ UTF-8 เข้าฐานข้อมูล MySQL ด้วย phpMyAdmin เปิด Notepad++ แล้วเลือกเข้ารหัสเป็น “UTF-8 without BOM” สำเนาข้อมูลจาก Microsoft Excel มาใส่ไว้ใน Notepad++ แล้วบันทึก สร้างโครงสร้างตารางแบบ UTF-8 เตรียมไว้ในฐานข้อมูลด้วย phpMyAdmin ทำการ Import ไฟล์ UTF-8 without BOM ที่บันทึกเอาไว้เข้าฐานข้อมูล MySQL โดยบอกมันว่าไฟล์ที่จะนำเข้า เป็นไฟล์ที่เข้ารหัสแบบ Latin1 หรือ Cp1252 (ยุโรปตะวันตก) พอ [...]

6 พฤศจิกายน 2008 at 21:42 - Comments
Tai Parinya
โอ๋ คุณพีทเองก็เป็นพลเรือน Mac ด้วยเหรอเนี่ย อือม ได้ยินมาว่าเครื่อง Mac แพงโคตร ๆ เลยอ่ะ สงสัยมันจะดี อะไร "เมพ" อ่ะคุณ AMp เขียนผิดป่ะเนี่ย :-P
8 พฤศจิกายน 08 at 12:38
Notepad++ สามารถเปิดไฟล์ขนาดใหญ่ๆได้รึป่าวครับ ปรกติผมก็แปลง cp1251 เป็น utf-8 อยู่บ้างโดยอาศัย dreamweaver เอาแต่มีปํญหาตรงที่ dream มันเปิดไฟล์ใหญ่ๆไม่ค่อยจะไหว แต่ผมเปิดด้วย edit plus ได้ เสียดายที่ edit plus มันบอกไม่ได้ว่าจะให้อ่านไฟล์ด้วย encode อะไร
9 พฤศจิกายน 08 at 03:35

ความสัมพันธ์ระหว่าง Table กับ Code

ผมรู้สึกมาแต่ไหนแต่ไรแล้วว่า ข้อมูลรวมทั้งค่าคงที่ไม่ควรจะเก็บไว้ใน code เพราะมันไม่ยืดหยุ่น แล้วก็ไม่คิดว่าการแยกเก็บไว้ในไฟล์อื่นต่างหาก มันจะดีอะไรขึ้นมา อือม ผมคิดว่าเก็บไว้ใน table ในฐานข้อมูลจะดีกว่า มันดูเป็นระเบียบดี สืบค้นได้ด้วย ง่ายต่อการเชื่อมโยงอีกต่างหาก แต่ก็พอจะรู้เหมือนกันว่า โปรแกรมเมอร์ส่วนใหญ่ไม่ค่อยชอบยุ่งกับฐานข้อมูลซักเท่าไหร่ แต่มันช่วยไม่ได้นี่นา ของมันต้องใช้ต้องเก็บนี่ ผมมีสถิติอะไรที่น่าสนใจมาให้ดู สถิตินี้ได้จากการที่ผมมักจะเอา open source ดัง ๆ มาติดตั้งที่เครื่องเพื่อทดสอบเล่นอะไรโน่นนี่อยู่บ่อย ๆ เราจะมองว่าการที่ open source ตัวใดต้องใช้ table เยอะแล้วมันคือ open source ที่ซับซ้อนได้ป่ะ? อือม จะบอกงั้นก็ไม่ได้ ถ้าบอกแบบนั้นงั้นก็แสดงว่า CakePHP กับ WordPress ไม่ซับซ้อนอ่ะดิ!!! ไม่หรอก!! จะบอกแบบนั้นไม่ได้หรอก จริง ๆ แล้วความซับซ้อนต้องจำกัดความให้มันกระชับกว่านั้น นั่นก็คือผมคิดว่าการที่ open source ตัวใดต้องใช้ table เยอะ นั่นก็น่าจะหมายความว่า open source [...]

7 กรกฎาคม 2007 at 23:16 - Comments
ผมว่าถ้าเป็นค่าพวกคอนฟิคต่างๆ ถ้าไม่ได้แก้ไขอะไรมาก เก็บเป็นไฟล์แยกน่าจะดีกว่าอ่ะครับ แล้วใช้สคริปเจนไฟล์นี้ให้ จะได้ไม่ต้องแก้เอง ออกแนวๆ พวกสคริปสำหรับ install CMS อ่ะครับ ่งั้นมัวมา query db ก็จะช้ามาก
10 กรกฎาคม 07 at 00:47
Tai Parinya
ทุกท่าน - พอข้อมูลเยอะแล้วก็ซับซ้อน ก็รู้สึกอยากจะยัดใส่ DB ครับ แต่ถ้ามันไม่มากก็รู้สึกอยากจะใส่ในไฟล์ แต่พอเพิ่มใส่ในไฟล์ไปซักพัก มันก็รู้สึกเยอะขึ้นมาอีกล่ะ ก็อยากจะยัดใส่ DB อีก เป็นแบบนี้วนเวียนไปเรื่อย ๆ เหมือนวงจรอุบาทว์ครับ :-P
10 กรกฎาคม 07 at 09:30

อัศจรรย์แห่ง SQL

ผมแค่จะบ่นครับ คืออยู่ในวงการพัฒนาซอฟต์แวร์มา 10 กว่าปีแล้ว เพิ่งจะเจออะไรแปลก ๆ แบบนี้ เรื่องของเรื่องก็คือโฮสติ้งที่ผมเช่าอยู่นี่แหล่ะ มันมักจะมีอะไรแปลก ๆ เสมอ ดูเหมือนโฮสติ้งเมืองไทยจะมีอะไรแปลก ๆ บ่อย เอ หรือว่าผมจะแปลกเองวะเนี่ย ปัญหาที่ผมเจอคือ มันไม่รับคำสั่ง SQL ของผมครับ ซึ่งมันเป็นคำสั่งที่เรียบง่ายมาก ดังต่อไปนี้ select member_id, name from member where member_id = (select max(member_id) from member) ทำที่ localhost ก็ผ่าน ทำที่ไหน ๆ ก็ผ่าน แต่ถ้าเป็นโฮสติ้งที่ผมเช่าเพื่อวางบล็อกนี้ มันไม่ผ่าน เอ้อ แปลกดี!!! นี่มันคำสั่งอันแสนจะพื้นฐานเลยนะเนี่ย ป.ล. หรือว่า mysql รุ่น 4.0.21 มันไม่รับคำสั่งพื้น ๆ แบบนี้? คำค้น: SQL, [...]

23 เมษายน 2007 at 10:36 - Comments
MySQL พึ่งมี subquery กับ stored procedure ในเวอร์ชัน 5 เองครับ
29 เมษายน 07 at 22:07
พี่ไท้
ผมรออยู่อ่ะคุณ TiD ว่าเมื่อไหร่น้อ โฮสติ้งเมืองไทย จะปรับ mysql กับ php ให้เป็นรุ่นที่ทันสมัยที่สุดซะที รอร๊อรอ
30 เมษายน 07 at 00:07

Sizing

วิชาฐานข้อมูลเป็นวิชาที่ผมได้คะแนนไม่ดีซักเท่าไหร่สมัยเรียน ตอนนั้นไม่คิดว่าวิชานี้จะสลักสำคัญอะไร แต่กาลกลับเป็นเช่นนั้นไม่ เพราะเดี๋ยวนี้ไม่ว่าจะเป็นซอฟต์แวร์คอมพิวเตอร์อะไร ส่วนใหญ่ล้วนต้องต่อเชื่อมกับฐานข้อมูลด้วยกันทั้งนั้น จะมีก็แต่ระบบปฏิบัติการ และโปรแกรมเอกสารสำนักงานอย่าง Word, Excel หรือ PowerPoint เท่านั้นกระมัง ที่ไม่ต้องต่อเชื่อมฐานข้อมูล!!! ที่ ๆ เก็บข้อมูลก็คือฐานข้อมูล ในทางคอมพิวเตอร์นั้น ยักษ์ใหญ่ทางด้านซอฟต์แวร์จัดการฐานข้อมูลก็มีหลายเจ้า ผมเองเคยใช้ไม่กี่อย่าง ที่เคยใช้มีก็เช่น Oracle, Informix, Sybase, Progress, SQL Server และ MySQL หากเราเคยเรียนวิชาฐานข้อมูลมา เราจะพบว่าถึงแม้เราจะไม่ได้ท่องทฤษฎีความสัมพันธ์ ของการเชื่อมโยงข้อมูลในฐานข้อมูลมาแบบเป๊ะ ๆ ก็ตาม แต่โดยสัญชาติญาณของคนคอมพิวเตอร์ ก็สามารถที่จะออกแบบตารางข้อมูล เพื่อเอาไว้ใช้เก็บข้อมูลได้ อย่างคร่าว ๆ นั่นย่อมแสดงว่าคนที่เรียนจบคอมพิวเตอร์มา ส่วนใหญ่ล้วนสามารถออกแบบฐานข้อมูลเองได้ ตามความต้องการที่ได้รับมา!!! ทีนี้เมื่อออกแบบมาแล้ว เคยคิดกันมั้ยครับว่าฐานข้อมูลของเรานั้น จะมีอัตราการเติบโตอยู่ที่เท่าไหร่ และเราควรจะใช้เนื้อที่ของ Hard Disk เป็นจำนวนเท่าไหร่สำหรับเก็บข้อมูล หรือใช้ CPU และ RAM เท่าไหร่ สำหรับรองรับการค้นหาข้อมูลภายในฐานข้อมูลของเรา??? ตัวแปรย่อมมีเยอะมาก [...]

3 เมษายน 2007 at 21:23 - Comments
พี่ไท้
T-T แสดงว่าผมตกยุคจริง ๆ ด้วยอ่ะคุณ wiennat ไม่รู้จริง ๆ อ่ะ
5 เมษายน 07 at 12:26
แต่หาคนทำแบบที่ผมบอก มันยากครับ
5 เมษายน 07 at 22:26

อย่าล็อก Table กันได้มั้ยครับ?

หลายสัปดาห์ก่อนผมถูกเรียกตัวด่วนเข้าศูนย์คอมพิวเตอร์ของที่ทำงานครับ โดยได้รับคำสั่งจากผู้บังคับบัญชาให้แก้ปัญหาระบบ Billing ด่วน เพราะระบบพิมพ์ใบเรียกเก็บลูกหนี้และระบบพิมพ์ใบเสร็จรับเงินให้ลูกค้าเกิดชะงักงัน ทำงานล่าช้าจนเกินกว่าจะยอมรับได้ ลูกค้าขององค์กรที่ผมทำงานอยู่มีมากมายครับ ในแต่ล่ะวันมีเข้ามาจำนวนราว 8,000 คนขึ้นไป ดังนั้นการออกใบเสร็จรับเงินจึงถือเป็นเรื่องสำคัญสุดขีดครับ เพราะออกใบเสร็จได้ก็แสดงว่าได้รับเงินเข้ากระเป๋าอย่างสมบูรณ์นั่นเอง และถ้าออกไม่ได้ แสดงว่าองค์กรจะสูญเสียเงินรายได้ถึงวันล่ะ 20 ล้านบาท!!! ทีนี้เรื่องยุ่ง ๆ มันก็อยู่ตรงที่ผมได้รับมอบหมายให้มาตรวจสอบว่าทำไมออกใบเสร็จรับเงินล่าช้า แต่ผมต้องควานหาครับ ว่าต้นตอนั้นเกิดจากที่ใด แถมต้องรายงานความคืบหน้าด้วยว่าดำเนินการยังไงไปบ้างแล้ว ประเด็นมันอยู่ที่ระบบ Billing ดังกล่าว มีทีมงานดูแลอยู่ก่อนแล้วและมันไม่ใช่ระบบที่ผมดูแลอยู่ โดยทีมงานดังกล่าวประกอบไปด้วยนักพัฒนาซอฟต์แวร์ 4 – 5 คนและนักวิเคราะห์ระบบ 1 คน ด้วยสถานการณ์ที่ผมซึ่งไม่ใช่เจ้าของระบบ และไม่ได้รู้ตื้นลึกหนาบางอะไรของระบบเลย ผมจึงจำเป็นต้องเรียกทีมดังกล่าวเข้าประชุมครับ เพื่อสอบถามปัญหาที่เกิดขึ้น โดยเรียกทีม Network และทีม System Admin เข้าประชุมด้วย จากการประชุมทำให้ผมได้ทราบว่าปัญหาไม่น่าจะเกิดขึ้นทางระบบ hardware หรือระบบ network แต่น่าจะมาจากฐานข้อมูล เพราะทางทีม System Admin แจ้งว่า CPU Time ของ [...]

20 กันยายน 2006 at 15:59 - Comments