Posts Tagged ‘database’

mysql สูงสุดของ field type text

พอดีวันนี้เจอปัญหาของลูกค้าบ่อยๆ คือ การทำ description ที่ใหญ่ๆ แบบ ทำหน้าทั้งหน้าไว้ใน description หรือไป copy มานั่นเอง แล้วเราก็กำหนด description เป็น type text แล้ว แต่ดันเก็บไม่พอ 555 ใหญ่เกินนั้นเอง เวลาแสดงหน้าเว็บเลย เรียกว่าผิดรูปกันไปเลยทีเดียวเลยไปหาว่า type text เก็บได้เท่าใหร่ไปเจอที่ หนึ่งคือ http://simonwillison.net/2002/Aug/1/mysqlTextLimits/

เค้าได้บอกไว้ว่า

Today’s scary discovery: MySQL TEXT fields have a limit of 65,000 bytes. If you insert anything larger than that in to a normal TEXT field mySQL will silently truncate your data without telling you (meaning software checks are probably a good idea). MEDIUMTEXT will store 16 million characters and LONGTEXT can handle over 4 trillion, but this information does not appear to be readily available in the online mySQL manual (although it is hinted at in this table). Something to bare in mind when designing database applications.

ตรงส่วนที่เขียวก็คือปริมาณในการเก็บของแต่ละ type นั้นเอง

text จะเก็บได้ 65,000 byte นั้นเอง ถ้าคิดเป็น utf แล้วเก็บภาษาไทยก็ยิ่งน้อยไปใหญ่

mediumtext เก็บได้ 16 million byte หรือ 16 ล้าน หรือ 16 MB เพิ่มมา 240 กว่าเท่าก็ใหญ่พอควร ในการเก็บข้อมูลที่ใหญ่ แค่นี้ก้พอแล้วนะสำหรับ description ที่ copy html มาของลูกค้า แต่ก็มีอีกอันที่ใหญ่กว่าคือ

longtext นี่เก็ยได้เิบิ้มเลย 4 trillion หรือ 4 แสนล้าน นั้นเอง

database แค่ record เดียวโตมากๆไม่ดีนะ ดูที่ความจำกัดเวลาใช้ด้วย

ประเภทของserver

เซิร์ฟเวอร์แบ่งเป็นกี่ประเภท

ประเภทของเซิร์ฟเวอร์ ต้องการนำมานำเซิร์ฟเวอร์ประเภท โดยปกติจะแบ่งตามการใช้งานได้เป็น 4 ประเภท คือ File Server , Print Server , Database Server , Application Server หรือ เก็บ-บริการไฟล์ บริการ/บริหาร งานพิมพ์ เก็บและบริการฐานข้อมูล และบริการ/บริหารซอฟต์แวร์ประยุกต์

ส่วน Mail Server, Internet Server หรือประเภทอื่นๆที่มีการเรียกชื่อนั้น เกิดจากการนำเอาเซิร์ฟเวอร์มากกว่า 2 ประเภทมารวมกันในตัวเดียว

File Server

เป็นเซิร์ฟเวอร์ที่มีหน้าที่จัดเก็บไฟล์ โดยการจัดเก็บไฟล์จะทำเสมือนเป็นฮาร์ดดิสก์รวมศูนย์ (Centerized disk storage) เสมือนว่าผู้ใช้งานทุกคนมีที่เก็บข้อมูลอยู่ที่เดียว เพราะควบคุม-บริหารง่าย การสำรองข้อมูล การ Restore ง่าย ข้อมูลดังกล่าวสามารถ Shared ให้กับ Client ได้ โดยส่วนมากข้อมูลที่อยู่ใน File Server คือ โปรแกรมและข้อมูล (Personal Data File) โดยปกติแล้วเซิร์ฟเวอร์ไม่มีหน้าที่ต้องประมวลข้อมูลเหล่านี้ เป็นเพียงแหล่งเก็บข้อมูล กล่าวง่ายๆ ก็คือ File Server ทำหน้าเสมือน Input/Output สำหรับไฟล์

การทำงานของเซิร์ฟเวอร์ที่เป็น File Server นั้น ในทางเทคนิคแล้วยังไม่เรียกว่าเป็น “Client/Server” เพราะไม่มีการแบ่งโหลดการทำงานระหว่างไคลเอ็นต์กับเซิร์ฟเวอร์ แต่หน้าที่ที่ File Server จะต้องจัดการคือ มี NOS (Network Operating System) ที่ดูแลเกี่ยวกับการ “เข้าถึง” ไฟล์ ต้องมีกระบวน “Lock” ไว้ ไม่ให้เกิดความซ้ำซ้อนในการแก้ไขไฟล์ เช่น ขณะที่ผู้ใช้งานคนที่ 1 เปิด ไฟล์ A และกำลังแก้ไข (edit) อยู่ ผู้ใช้งานคนที่สองจะเปิดไฟล์ A เพื่อแก้ไขไม่ได้ (แต่เปิดเพื่ออ่าน Read Only ได้) แต่ถ้าหากข้อมูลนั้นเป็น Database แทนที่ไฟล์หรือฐานข้อมูลทั้งฐานข้อมูลจะถูก Lock กระบวนการ Lock ก็อาจจะเกิดเฉพาะ Record (Row) นี้เป็นหน้าที่ของ NOS และ Application ที่ใช้งาน

Print Server

หนึ่งเหตุผลที่ต้องมี Print Server ก็คือ เพื่อแบ่งให้พรินเตอร์ราคาแพงบางรุ่นที่ออกแบบมาสำหรับการทำงานมากๆ เช่น HP Laser 5000 พิมพ์ได้ 10 – 24 แผ่นต่อนาที พรินเตอร์ประเภทนี้ ความสามารถในการทำงานสูง ถ้าหากซื้อมาเพื่อใช้งานเพียงคนเดียว แต่ละวันพิมพ์ 50 แผ่น ก็ไม่คุ้มค่า ดังนั้นจึงต้องมีกระบวนการจัดการแบ่งปันพรินเตอร์ดังกล่าวให้กับผู้ใช้ทุกๆคนในสำนักงาน หน้าที่ในการแบ่งปัน ก็ประกอบด้วย การจัดคิว ใครสั่งพิมพ์ก่อน การจัดการเรื่อง File Spooling เป็นของเซิร์ฟเวอร์ ที่มีชื่อว่า Print Server

โดยส่วนใหญ่ในองค์กร น้อยองค์กรที่จะซื้อเซิร์ฟเวอร์มาเพื่อใช้สำหรับเป็น Print Server โดยเฉพาะ แต่จะใช้วิธีเอาเซิร์ฟเวอร์ที่ซื้อมาเพื่อเป็น File Server , Data Base server ทำเป็น Print Server ไปด้วย

Database Server

Database Server หมายถึง เซิร์ฟเวอร์ที่มีไว้เพื่อรันระบบที่เป็นฐานข้อมูล DBMS (DataBase Managment System ) เช่น SQL , Informix เป็นต้น โดยภายในเซิร์ฟเวอร์ที่มีทั้งฐานข้อมูลและตัวจัดการฐานข้อมูล ตัวจัดการฐานข้อมูลในที่นี้หมายถึง มีการแบ่งปัน การประมวลผล โดยผ่านทางไคลเอ็นต์

Application Server

ส่วนใหญ่ process ที่ถูกรันเป็น server จะเรียกว่า Daemon แล้วเวลารันชื่อ process จะตามด้วย อักษร d เช่น

httpd

sshd

mysqld

นี่เป็น process ที่ได้รับความนิยมและเห็นกันบ่อยๆครับ

Application Server คือ เซิร์ฟเวอร์ที่รันโปรแกรมประยุกต์ได้ด้วย โดยการทำงานสอดคล้องกับไคลเอ็นต์ เช่น Mail Server (รัน MS Exchange Server) Proxy Server (รัน Proxy Server) หรือ Web Server (รัน Web Server Program เช่น Xitami , Apache’ )

Application ที่ได้รับความนิยมและเห้นการใช้งานได้บ่อยๆ คือ

web server

apache process

lighttpd process

อื่นๆ

database server

Oracle process

Mysql process

Postgres process

อื่นๆ

Mail server

mail

smtp

อื่นๆ

sshd (secure shell process)