2011-01-26 28 views
5

Tôi làm việc cho một công ty web và chúng tôi hiện đang sử dụng phiên bản OSCommerce được sửa đổi cao làm ứng dụng thương mại điện tử chính của chúng tôi, nhưng gần đây chúng tôi đã tiếp cận một số công ty với hơn 2 triệu mô hình sản phẩm riêng lẻ muốn bán hàng trực tuyến.Cách xử lý 2 triệu sản phẩm

Về cơ bản câu hỏi của tôi là - có bất kỳ ứng dụng mua sắm PHP/MySQL dựng sẵn nào sẽ xử lý nhiều sản phẩm này một cách duyên dáng hoặc tôi không may mắn về mặt trước đó? Tôi có cần tạo ứng dụng tùy chỉnh không? lựa chọn của tôi là gì đây?

Cơ sở dữ liệu nosql có tốt hơn MySQL không?

+0

Không quá kiến ​​trúc sư. 2 triệu âm thanh như rất nhiều, nhưng bất kỳ cơ sở dữ liệu phong nha/phần cứng combo ra có thể xử lý 2 triệu hồ sơ trong một bảng mà không phá vỡ một mồ hôi (giả sử bạn có một số chỉ số phong nha). Xem lại tại đây: chèn một triệu bản ghi mỗi ngày: http://forums.mysql.com/read.php?61,44239,44251#msg-44251 – jvenema

Trả lời

1

Bạn không nói rõ liệu đó là khoảng không quảng cáo của 2 triệu sản phẩm hay 2 triệu sản phẩm riêng lẻ mà họ muốn bán. Dù bằng cách nào, một cơ sở dữ liệu SQL truyền thống có thể xử lý nó tốt, mặc dù điều này hoàn toàn phụ thuộc vào cách lược đồ được thiết kế, v.v. Tôi không chắc chắn về các giải pháp có sẵn mặc dù tôi đã nghe những điều tốt về Magento.

2

Bạn chắc chắn muốn xây dựng giải pháp tùy chỉnh và bạn chắc chắn muốn tính phí nhiều hơn mức bình thường bởi vì có rất nhiều rủi ro và sự cần thiết cần thiết. Đối với kiến ​​trúc của bạn, sử dụng NoSQL là có thể và có một số lý do thuyết phục đằng sau việc sử dụng NoSQL cho thương mại điện tử - lý do chính là nó là schemaless và nếu bạn có rất nhiều loại và tất cả các sản phẩm cần được bán khác nhau (nghĩa là bạn bán máy tính khác với bạn bán đồng hồ) vì các thuộc tính sản phẩm khác nhau, việc quản lý phức tạp cơ sở dữ liệu trở nên thực sự quan trọng.

Video này sẽ cho bạn thấy những gì một khởi đầu suy nghĩ thực sự ở NYC đang thực hiện. Họ đang sử dụng MongoDB cho toàn bộ cơ sở dữ liệu sản phẩm của họ. Video này phải là một cái mở mắt thật vì nó vạch ra rất nhiều những cạm bẫy trong MySQL cho các trang web thương mại điện tử lớn, và rất nhiều tiềm năng thay đổi trò chơi của NoSQL:

http://engineering.shopopensky.com/topics/mongodb

Đối với việc xử lý thanh toán, bạn chắc chắn KHÔNG muốn lưu trữ chúng trong NoSQL. Giữ người dùng, phiên và dữ liệu thanh toán của bạn trong MySQL và đảm bảo dữ liệu được bảo mật cao. Đây là một (mặc dù cũ) mảnh lớn trên phiên đảm bảo trong các ứng dụng PHP:

http://www.troubleshooters.com/codecorn/php/persist.htm

Là một lưu ý, liên kết cuối cùng này sẽ giúp bạn hiểu được lý thuyết thì càng tốt. Hầu hết các khung công tác PHP hỗ trợ loại xử lý phiên này ra khỏi hộp. CodeIgniter, Yii và ZendFramework là một trong số những điều tốt nhất.

+1

FWIW, 2 triệu mục không phải là một vấn đề lớn đối với MySQL và Tôi nghĩ rằng việc giữ 1 cơ sở dữ liệu thường sẽ làm cho ứng dụng của bạn đơn giản hơn để duy trì trong thời gian dài. Cá nhân, tôi không nghĩ NoSQL là một kế hoạch tốt ở đây. Một bài đọc thú vị (nếu một chút cũ) có thể được tìm thấy ở đây, lại: sử dụng MySQL của Facebook: http://blog.facebook.com/blog.php?post=7899307130 – jvenema

+0

Cảm ơn bạn đã liên kết! –

+0

Nếu tất cả một giỏ mua hàng là một bảng đầy đủ các sản phẩm thì thế giới sẽ là một nơi đơn giản hơn nhiều. –

3

Về cơ bản câu hỏi của tôi là - là có bất kỳ dựng sẵn PHP/MySQL ứng dụng mua sắm mà sẽ xử lý nhiều sản phẩm này một cách duyên dáng

số Nếu có các công ty này với các sản phẩm 2.000.000 sẽ sử dụng nó .

Tôi có cần tạo ứng dụng tùy chỉnh không?

Bạn đã có. Bạn đã bắt đầu với OS Commerce làm cơ sở và xây dựng một ứng dụng tùy chỉnh trên đầu trang. Bạn có thể không nghĩ về nó như một ứng dụng, nhưng nó được.

Tùy chọn của tôi ở đây là gì?

Chấp nhận rằng bạn sẽ cần một nhóm CNTT/Phát triển phong nha để theo đuổi công việc này và xác định xem chi phí đó và R & D có đáng để thực hiện công việc kinh doanh mới này hay không.

Cơ sở dữ liệu nosql có tốt hơn MySQL không?

Không. Nhưng cơ sở dữ liệu MySQL cũng sẽ không tốt hơn cơ sở dữ liệu "nosql".

+0

có thể là một db Oracle sẽ tốt hơn để quản lý số lượng lớn các bản ghi này – WonderLand

0

Tùy thuộc vào ngân sách, Magento Enterprise có thể là giải pháp tốt cho bạn. (Tôi không nói rằng để bán nó, tôi không phải là một đối tác). Bạn có thể hoặc là kiến ​​trúc sư giải pháp hoặc có một công ty hosting giúp bạn. Rackspace là công ty đối tác hàng đầu và là nơi tuyệt vời để đưa các giải pháp này lại với nhau. Có rất nhiều con số đi vào hoạt động, chẳng hạn như kết nối đồng thời cao điểm, số lần xem trang mỗi giờ, giao dịch mỗi giờ, v.v. Bạn muốn xem xét thứ gì đó có ít nhất 2 máy chủ MySQL (sao chép chính/phụ) và nhiều các máy chủ giao diện người dùng phía sau trình tải trọng. Thay vì Apache, hãy nhìn vào nginx. Bạn cũng sẽ muốn xem apc & memcached để lưu vào bộ nhớ cache. Một thiết lập như vậy sẽ đi một chặng đường dài. Khi thiết lập chính xác, Magento Enterprise có thể xử lý nhiều sản phẩm này một cách dễ dàng. Điều quan trọng cần nhớ là giải pháp tùy chỉnh sẽ không cần phải được phát triển - nó sẽ cần phải được thiết kế.

1

Để trả lời đề xuất của Doanh nghiệp Magento, gần đây chúng tôi đã triển khai ứng dụng này cho trang web của chúng tôi mang khoảng 150.000 SKU. Chúng tôi cũng đang di chuyển từ một phiên bản osCommerce được tùy biến rộng rãi. Kinh nghiệm của chúng tôi là một trong những thất vọng và chậm trễ của dự án vì tốc độ chậm mà hệ thống doanh nghiệp hoạt động cũng như thiếu tài liệu để thực hiện. Chúng tôi thực sự không thể sử dụng nhiều chức năng của phiên bản dành cho doanh nghiệp vì điều này.

Ứng dụng này nổi tiếng vì thiếu tài liệu và phản hồi chậm từ nhóm hỗ trợ Varien mà chúng tôi đã trải nghiệm trước tiên. Hệ thống templating dường như chỉ hoàn thành một phần, và không đặc biệt tốt nghĩ ra. Một trong những người trả lời câu hỏi của bạn, Alan Storm, đã thực sự là một vị cứu tinh cho nhóm của chúng tôi với các hướng dẫn tốt bằng văn bản của mình và các câu trả lời stackoverflow.com hào phóng.

Đề xuất của tôi là thực hiện nghiên cứu sâu rộng trước nền tảng Enterprise Magento - nó không giống như phiên bản cộng đồng. Như Bob Brodie đã đăng ở trên, các yêu cầu và thiết lập máy chủ không dành cho những người yếu tim, cũng không phải là họ không tốn kém. Điều tra các tùy chọn nâng cao tốc độ có sẵn - bạn sẽ cần chúng, chi phí trên máy chủ, xem xét đường cong học tập và thời gian bổ sung mà nó sẽ thêm vào dòng thời gian của dự án - Magento khác biệt đáng kể so với osCommerce - và trên hết là tìm một máy chủ web đáng tin cậy trước khi bạn thanh toán phí cấp phép một năm 12.000 đô la.

0

Tôi chỉ tò mò nếu có ai nghĩ rằng thiết lập này có thể làm điều đó. cộng đồng Magento với proxy ngược (có thể là véc ni) và được ghi nhớ là bộ nhớ cache của ứng dụng. không có nội dung động trên các trang sản phẩm (vì nó có thể được hiển thị khi tương tác tùy chỉnh với phản hồi được lưu trong bộ nhớ cache) để giữ cho các yêu cầu ứng dụng ở mức tối thiểu tuyệt đối. sử dụng máy chủ tải cân bằng nginx.

bạn cũng có thể triển khai các quy trình tối ưu hóa và bảo trì cơ sở dữ liệu có cấu trúc hơn dưới dạng ứng dụng riêng biệt.

có lẽ bạn có thể làm điều gì đó cực đoan, nhưng khá rẻ (tôi đoán những kẻ có 2 triệu sản phẩm có ý tưởng khác rẻ cho bạn và tôi), thay đổi mô-đun bán hàng, thuế và bán hàng cho một thứ kém linh hoạt hơn hiệu quả hơn.

i dunno có vẻ như là cách tốt nhất với tôi. thanh toán cho magento EE hàng năm so với chi tiêu ban đầu cho hiệu suất tự hào.

0

Một trong những câu trả lời tốt nhất để loại này tải sản phẩm (và, tình cờ, là chúng ta đang sử dụng) là https://magento.stackexchange.com/questions/459/running-magento-in-an-aws-environment

Chúng tôi đang chạy một cộng đồng tùy chỉnh Magento (1.9) máy chủ trên một Amazon Web Services môi trường beanstalk với RDS cho các sản phẩm, redis cho bộ nhớ cache & S3 -> CDN cho phương tiện được liên kết với Magento. Đó là những ngày đầu, nhưng chúng tôi đã tìm thấy không có vấn đề thực sự cho đến nay. Ước tính thời gian phát triển ... có thể một tuần hoặc lâu hơn để chuyển từ VPS với local mysql/cache/apache/php?

Các vấn đề liên quan