MySQL

MySQL : ข้อควรระวังเวลาใช้ InnoDB เก็บข้อมูลขนาดใหญ่

วันนี้ผมลองใช้ InnoDB เพื่อเก็บข้อมูลขนาดใหญ่ โดยไม่รู้ว่าข้อมูลของ InnoDB นั้น จะถูกเก็บไว้ใน file /var/lib/mysql/ibdata1 ทั้งหมด
ไม่ได้เก็บไว้ใน file ใน directory /var/lib/mysql/databasename เช่นเดียวกับ MyISAM ทำให้ root partition ของ server ตัวนั้นเกือบจะเต็ม

โดยหากเราต้องการย้าย file ที่เก็บข้อมูลของ InnoDB สามารถทำได้โดยการแก้ไข configuration file ของ MySQL และ restart
(หรือกำหนด Tablespace ตอน create, alter table ตรงนี้ไม่แน่ใจนะครับ?)

ดังนั้นก่อนที่จะเก็บข้อมูลขนาดใหญ่ลง InnoDB ควรตรวจสอบ configuration สักนิด ว่าพื้นที่สำหรับเก็บข้อมูลเพียงพอหรือไม่?

MySQL Spatial Extensions step-by-step guide

เนื่องจากผมเพิ่งจะได้ทราบว่า MySQL มี spatial data type เค้ามีมาให้ตั้งแต่ version 4.1 แล้ว แต่ผมเพิ่งรู้ เชยจริง ๆ แฮ่...
จึงต้องเขียนเก็บไว้หน่อย กันลืมครับ

การที่มี spatial data type ทำให้เราสามารถใส่ข้อมูลตำแหน่ง (จุด, เส้น และพื้นที่)
เข้าไปใน field ของ MySQL เพื่อทำการประมวลผลโดย function ต่าง ๆ ได้

ยกตัวอย่างเช่น ถ้าเราต้องการค้นหาว่าข้อมูลตำแหน่งใดบ้าง อยู่ในพื้นที่ ที่เรากำหนด ก็สามารถใช้ SQL นี้ได้

{syntaxhighlighter brush: sql; gutter: false;}
select id, astext(g)
from geom
where within(g, geomfromtext('polygon((5 5,5 10,10 10,10 5,5 5))'))

MySQL replication setup step-by-step guide

[Master] = Master database server
[Slave] = Slave database server

Scenario
We would like to setup 1:1 Master-Slave MySQL Replication.

Environment
[Master]
OS: Fedora 9
IP: 192.168.0.40

[Slave]
OS: Fedora 9
IP: 192.168.0.41

Step-by-step guide for MyISAM tables
1. At [Master], grant replication privileges for [Slave]

mysql> GRANT REPLICATION SLAVE ON *.*
    -> TO 'repl'@'192.168.0.41' IDENTIFIED BY 'slavepass';

Note: We will use "Username" (repl) and "Password" (slavepass) in step 10.

Syndicate content