0031 | MySQL: my.cnf

Tuesday, September 2nd, 2008 Posted in Database | 1 Comment »

เอามาเก็บไว้ฮะ สำหรับแรม 4gb ฐานข้อมูลขนาด 1 gb [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql # Default to using old password format for compatibility with mysql 3.x # clients (those using the mysqlclient10 compatibility package). old_passwords=1 set-variable=local-infile=0 skip-name-resolve skip-bdb max_connections = 600 key_buffer = 512M myisam_sort_buffer_size = 32M join_buffer_size = 1M read_buffer_size = 2M sort_buffer_size = 4M table_cache = 1536 thread_cache = 8 thread_concurrency ...

Tags: , ,

0021 | วิธีนับจำนวนแถว (record) ในตาราง

Sunday, June 15th, 2008 Posted in Database, PHP Coding | No Comments »

ดองไว้นานเชียะ = =' ขออภัยด้วยครับ แบบว่าขี้เกียจเขียน เอ้ย งานยุ่งๆ มหาลัยเปิดเทอมแล้ว ตารางเรียนเห็นแล้วแทบบ้า เอาวันหยุดของตูคืนมา เอาวันหยุดของตูคืนมา T_T เข้าประเด็นเลยดีกว่า ช่วงนี้มีงานประเภทนี้เยอะครับ เห็นแล้วก็เซ็งไอ้คนเขียนเว็บคนเก่าที่ทำระบบมาจริงๆ คุณพี่เขียนไว้อย่างนี้ครับ.... $sql = mysql_query("SELECT * FROM table"); $records = mysql_num_rows($sql); ไอ้อันที่จริงมันก็ไม่ผิดอะไรหรอกครับถ้าจะใช้แบบนี้ เพราะ code มันก็ทำงานได้ปกติสุขดีของมัน แต่... ใครจะรู้มั้ยครับ ว่า mysql มันต้องส่งข้อมูลมากขนาดไหน สมมติว่า ตารางมีขนาด 1 MB การ query นี้จะทำให้ mysql ต้องส่งข้อมูลขนาด 1 MB ให้ client ที่ทำการ query แล้ว client จะเป็นผู้นับจำนวนแถวเอง ลองคิดดูว่าถ้าตารางเราเกิดมีขนาด 10 ...

Tags: , ,

0019 | สารบัญนั้นสำคัญไฉน… (ว่าด้วย MySQL Index)

Wednesday, May 28th, 2008 Posted in Database | 1 Comment »

ดองไว้ตั้งนานแล้วครับ entry นี้ เคยเกริ่นๆ ไว้ตั้งนานแล้วด้วยแหละ เรื่องนี้ถือเป็นเรื่องใหญ่มากๆ ครับในการออกแบบฐานข้อมูลบน MySQL เนื่องด้วยมันจะมีผลต่อความเร็วในการค้นหาข้อมูลมาก ถึงมากที่สุด เคสที่ยังใช้งานน้อยๆ เช่นมีการเรียกใช้แค่ นาทีละไม่ถึงสามสิบครั้ง อะไรอย่างนี้อาจจะไม่ค่อยเห็นผลเท่าไหร่ แต่พอมีการใช้งานเยอะๆ ดูสิครับ... ไม่อยากบรรยายถึงความเละสุดอนาถเลยแหละ ทีนี้ จะดูยังไงว่าเราควรจะสร้างฐานข้อมูลยังไง ออกแบบยังไงให้มีประสิทธิภาพ ตรงนี้ต้องดูการเรียกใช้งานของเราครับ เช่น... อ้อ ลืมไป ยกตัวอย่างไม่ได้ ต้องสร้างตารางก่อน CREATE TABLE users ( id int NOT NULL DEFAULT '0' auto_increment, username varchar(24) NOT NULL DEFAULT '', ...

Tags: , ,

0014 | MySQL Replicate

Wednesday, May 14th, 2008 Posted in Database | 1 Comment »

* บทความนี้อ้างอิงและประยุกต์มาจากเว็บไซต์ต่อไปนี้ DNSThailand.com - เทคนิคการใช้ Replication ระดับสูงใน MySQL CATTelecom.com - กิตติชน แม้นสมุทร [ejeepss] » Replicate MySQL 5.x สืบเนื่องจาก entry ที่แล้ว ก็เลยลองไปค้นๆ ข้อมูลเพิ่มเติมดูอีกหน่อยว่าเราลืมอะไรไปบ้าง เพราะนึกได้ว่ายังไม่ได้ลองทำ MySQL Replicate เลย (ฮาๆ) ประเด็นคือไม่รู้ว่ามันช้าที่ฐานข้อมูลรึเปล่า เพราะ debug ไม่เจอสาเหตุ ก็เลยต้องลองทำเท่าที่ทำได้ไปก่อน ขั้นต้นก็ต้องมี server 2 เครื่องขึ้นไปครับ โดยสมมติเครื่องแรก ชื่อ web-slave เครื่องที่สอง ชื่อ db-master ก่อนอื่นมาที่เครื่อง web-slave สั่งติดตั้ง mysql server ตามนี้ครับ * อ้างอิง Fedora ...

Tags: , , , ,