Tối ưu cơ sở dữ liệu như thế nào?

Bài này tôi viết trên fb hơn 1.5 năm trước

→ giờ kéo về nhà làm kỉ niệm


Tạo 1 tỷ dòng dữ liệu trong tầm tay của bạn!!!

Đi chơi vòng vòng trên fb thấy có người chia sẻ kinh nghiệm làm cơ sở dữ liệu database hay DB gì đó

→ thiệt là hoành tá tràng như quản lý DB 1 tỷ dòng, quản lý DB to vài TB

Thiệt là ham quá đi nhưng mà đào đâu ra mấy cái đó bi giờ

Tìm hoài trên mạng mấy cái DB mẫu được mấy ông tây share cho người đời cũng chỉ có vài trăm nghìn dòng là cùng

Hổng lẽ chịu bó tay sao?

→ phải tự vào bếp nấu ăn vậy. Hơi cực 1 chút nhưng có cái để ăn

Đi chợ mua giúp tui 2 thứ: thời gian + 1 cái đĩa hay dĩa to to để đựng đồ ăn

→ các công việc còn lại tui sẽ chỉ bạn ở cuối bài, chủ yếu là Ctrl + C, Ctrl + V bạn sẽ có đồ ăn


Về thời gian trước khi nấu nướng chúng ta cần sơ chế nó trước

Thời xưa đi học + đọc sách báo tin học thấy nói là CPU của máy tính có thể tính được cả tỷ phép tính 1 giây…

→ làm cậu học trò hạng bét như tui cứ nghệch mặt ra

1 tỷ phép tính 1 giây? → vậy là trong 1 phần tỷ giây nó làm 1 phép tính à?

→ thiệt là khó tin, đo còn k được huống chi còn tính toán nữa chứ!!!

Sau này mới biết phần tỷ giây chẳng thấm vào đâu cả.

Thời gian nhỏ nhất mà con người nghĩ ra được và có ý nghĩa thực tế là 10-43 giây (thời gian Planck)

→ đây là khoảng thời gian để 1 photon vượt qua được một khoảng cách bằng độ dài Planck trong môi trường chân không với vận tốc ánh sáng 3.108m/giây

→ chân = thật, thiệt ; chân không = thiệt sự hổng có gì

Zậy còn thời gian nhỏ hơn nữa như 10-100 giây thì sao?

→ cũng có nhưng chả biết để làm việc gì

Nói thêm: Độ dài Planck = 10-35m đây là khoảng cách mà lý thuyết về vạn vật hút nhau hay hấp dẫn nhau của ông Newton hổng còn tác dụng nữa

→ lúc này lý thuyết lượng tử lên ngôi, hoàng thượng vạn tuế, vạn vạn tuế!!!

Kế tiếp là thời gian mà con người thực sự điều khiển được sẽ tính = pico giây (picosecond).

1 pico giây = 1 phần ngàn tỷ giây = 10^-12 giây

Xứ cờ hoa chế ra được cái streak camera trong 180 femto giây có thể chụp được 1 tấm hình

1 femto giây = 10-15 giây

→ vậy các bạn của tui ơi, 180 femto giây lớn hơn hay nhỏ hơn 1 pico giây ạ?

330 pico giây là thời gian để CPU của 1 máy tính 3.0 GHz xử lí xong 1 lệnh

→ nó đây ạ

→ hết phần sơ chế thời gian


Đến phần chiên nướng thời gian

Bỏ thời gian vào cái CPU để nướng chín nó

Hơi thất vọng vì trong ngôi nhà Windows chỉ cho ra 7 con số = vài trăm nano giây.

1 nano giây = 1 phần tỷ giây = 10-9 giây

Có chút phấn khởi khi ngôi nhà Linux cho ra 9 con số = nano giây

Trong nhà Windows hay Linux có con trăn

→ xứ cờ hoa gọi là python chậm chạp chỉ nhả ra được 6 con số = micro giây

→ khoe để người ta biết biết mình biết code python đồ

→ hết phần chiên nướng thời gian

Viết chương trình C như mí cái trên nha


Tới phần cuối cùng là dọn ra ăn

Đồ ăn bự khoảng 56 GB

→ nhớ chọn cái đĩa hay dĩa to to 1 chút nha

Dọn đồ ăn thô (raw data) ra file


Đếm 1 tỉ dòng hết bao lâu?

1 giây thêm được bao nhiêu dòng dữ liệu?


Công thức nấu ăn đây ạ

→ ở đây tui chọn MySQL để tạo 1 tỷ dòng vì nó như con ngựa của BKS, còn Oracle như con ngựa của LVN

Học lập trình bạn thường được dặn là cần kết thúc vòng lặp lẹ lẹ

→ trường hợp này thì ngược lại

→ bạn cần cho nó chạy quài quài đến khi nào cái đĩa của bạn không chứa nổi đồ ăn thì thoai