<![CDATA[Messages posted by "tmlinhkct"]]> /hvaonline/posts/listByUser/263982.html JForum - http://www.jforum.net Cần giúp đỡ về sắp xếp database MySQL

myquartz wrote:

henryhuy wrote:
Xin gừi bác cấu trúc table của mình như sau : 1 id int(250) 2 content_id varchar(250) 3 content_category_id varchar(255) 4 title text 5 sub_title text 6 detail longtext 7 image varchar(250) 8 idlang varchar(250) 9 show_content int(2) 10 dateadd datetime Câu lệnh SELECT mỗi lần lấy tin mới nhất của mình thế này : "select id, content_id, content_category_id, title, sub_title, image, idlang, show_content, dateadd from content order by id desc limit 0,10" Nếu muốn tạo INDEX thì mình làm thế nào, sorry mình hỏi hơi kỹ vì chưa làm INDEX lần nào cả Mình có đọc 1 số tut trên mạng thì hướng dẫn là ALTER TABLE content ADD INDEX idx_id(id); nhưng mình không rõ là khi nào nên ALTER TABLE cả, có phải là mỗi lần select 10 tin mới ra chăng ? Cảm ơn các bác nhiều. 
Ợ. Vậy là bạn học lập trình SQL mà không học về ... index của CSDL, một thứ quan trọng sống còn của nó (mặc dù hệ thống vẫn chạy khi không có nó), có thể đây là sự thiếu sót không chỉ mỗi bạn mắc phải đâu. Cột ID của bạn có phải là primary key? nếu là primary key rồi thì không cần index nữa vì nó đã được index rồi (primary key là 1 dạng index, với thuộc tính unique). Việc tạo index chỉ 1 lần kèm với tạo bảng, và thi thoảng thì phải bảo dưỡng nó thôi (analyze table), alter table là nhóm DDL như create table... Nếu cột ID của bạn là số tăng dần, mỗi bài tin là tăng 1 đơn vị, bạn lấy 10 tin mới nhất thì sửa 1 chút thế này: select id, content_id, content_category_id, title, sub_title, image, idlang, show_content, dateadd from content where id >= (select max(id)-10 from content) order by id desc limit 0,10 Nếu lo ngại có sự delete trong content, gây lỗ thủng id, thiếu, thì max(id) - 10 thay bằng - 20, - 30... thậm chí 100 vẫn là rất tốt cho bảng. nó đảm bảo rằng dù bảng có tăng kích thước lên thì tốc độ vẫn không thay đổi nhiều. 
mình xin đính chính chút là nếu cột id đã là primary key rồi thì không cần dùng WHERE... nữa mà chiến luôn: Code:
select id, content_id, content_category_id, title, sub_title, image, idlang, show_content, dateadd  from content order by id desc limit 0,10
]]>
/hvaonline/posts/preList/45564/281073.html#281073 /hvaonline/posts/preList/45564/281073.html#281073 GMT
Cách tính mức chịu tải của server

quangteospk wrote:
Mình thấy có gì đó không đúng ở cách tính chịu tải dựa trên bandwidth thì phải. Ví dụng mình dùng pingdom-tool để đo thử trang vnexpress, page size vào home-page là 3.9MB. Giải dụ vnexpress thuê bw là 1Gbps (khá cao), tương đương 128 Megabyte/s vậy tính ra với băng thông đó, chưa tính mức độ chịu tải về hardware thì chỉ với xấp xỉ 33 req là hết băng thông. Không biết có gì sai ở đây không nhỉ?  
Đó là tính theo lượt người dùng mới. Tức là user mới vô vnexpress lần đầu sẽ phải load toàn bộ site về. Còn từ lần 2 trở đi, do site đã cache trên máy user rồi nên load lại site sẽ chiếm ít băng thông hơn.]]>
/hvaonline/posts/preList/45677/280917.html#280917 /hvaonline/posts/preList/45677/280917.html#280917 GMT
Vấn đề loadavg cao trong khi CPU, I/O, RAM bình thường

linshan wrote:
bắt đầu đoạn "3 zombie" sẽ tìm được vấn đề 
đây mới là nguyên nhân chính]]>
/hvaonline/posts/preList/45652/280916.html#280916 /hvaonline/posts/preList/45652/280916.html#280916 GMT
Kết hợp Nginx + Varnish + Apache

Framer wrote:
Thanks các bác đã cho ý kiến. Em thực sự thấy Vanish cache ổn hơn nginx nhiều. Em sẽ giữ mô hình này :) 
Mình cũng từng dùng vanish cache cho 1 hệ thống site báo nhỏ. Dùng để cache static file, controll ram tốt hơn nginx nhiều (mình đã test ab full đường truyền 12 Mbps).]]>
/hvaonline/posts/preList/45532/280623.html#280623 /hvaonline/posts/preList/45532/280623.html#280623 GMT
Giúp đỡ vấn đề file .htaccess trên windows /hvaonline/posts/preList/44525/277711.html#277711 /hvaonline/posts/preList/44525/277711.html#277711 GMT giúp đỡ về tạo mạng aỏ trên linux /hvaonline/posts/preList/43488/269933.html#269933 /hvaonline/posts/preList/43488/269933.html#269933 GMT FullScreen máy ảo trong VMware Workstation /hvaonline/posts/preList/43161/268327.html#268327 /hvaonline/posts/preList/43161/268327.html#268327 GMT Lỗi khi phân quyền thư mục chứa mailbox trong postfix /hvaonline/posts/preList/42877/266956.html#266956 /hvaonline/posts/preList/42877/266956.html#266956 GMT Làm thế nào để 2 máy ở 2 lớp mạng khác nhau có thể nhìn thấy nhau? /hvaonline/posts/preList/42840/266454.html#266454 /hvaonline/posts/preList/42840/266454.html#266454 GMT Cho mình hỏi về load balancer giữa tomcat với MySQL server /hvaonline/posts/preList/42657/265428.html#265428 /hvaonline/posts/preList/42657/265428.html#265428 GMT Cho mình hỏi về load balancer giữa tomcat với MySQL server

Ikut3 wrote:
Hi ngtrongtri 2. Trong trường hợp việc connect giữa 2 máy MySQL có vấn đề, 2 con không nhận được tín hiệu của nhau trong 1 khoảng thời gian nhất định. Bạn sẽ bị Split Brain. Đối với trường hợp này bạn phải giải quyết ra sao ? :-D Cheers, 
cái này em thấy đối với active/active thì vào /etc/drbd.d/global_common.conf
net { allow-two-primaries yes; after-sb-0pri discard-zero-changes; after-sb-1pri discard-secondary; after-sb-2pri call-pri-lost-after-sb; }  
khi phát hiện ra split brain là tự động reboot trên 1 node đc coi là mất dữ liệu. sau reboot thì connect lại bt. với acive/passive thì chĩ có mỗi manual còn auto thì hok bít.:( ]]>
/hvaonline/posts/preList/42657/265365.html#265365 /hvaonline/posts/preList/42657/265365.html#265365 GMT