توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : داده های حجیم در mysql
iroo
July 17th, 2016, 14:54
سلام
من میخواستم یک پروژه ای رو تحلیل و شروع به طراحی بکنم
در این پروژه روزی 2000 - 3000 فاکتور ثبت خواهد شد، که ماهانه حدود 90.000 فاکتور!!!!!!
در طی یک سال میشه یک میلیون و صد هزار فاکتور
اگر از این سیستم به مدت دو یا سه سال استفاده بشه حجم بسیار عظیمی از فاکتور تو دیتا بیس ذخیره میشه و خوانده و نوشتن تو دیتابیس با کندی انجام خواهد شد و سیستم با کندی شدید مواجه میشه
برای این مسئله چیکار می تونم بکنم؟؟؟؟
T.Toosi
July 17th, 2016, 15:07
سلام، بیشتر از تصورات شما قابلیت ذخیره دارد، 97 میل ریکورد با دیتا 30 گیگ هم نرمال حساب میشود، باید یک سری قواعد را رعایت کنید که در آینده به مشکل نخورد: استراکچر بهینه، لک ایندکس و ..
miladtnt
July 17th, 2016, 15:10
نوع ذخیره سازی مثل mysam innodb هم مهمه که یکی قابلیت ریپرش بهتره ... یکی سرعتش... یکی مصرفش ..
اگه تنظیمات (بقول معروف کانفیگ) خوبی براش اعمال کنین هیچ مشکلی پیش نمیاد من الان تو دیتابیسم جدولی دارم بالای چند گیگ که تو هر بازدید کاربر مرورگرو ای پی و اینارو ذخیره میکنه
iroo
July 17th, 2016, 15:13
سلام، بیشتر از تصورات شما قابلیت ذخیره دارد، 97 میل ریکورد با دیتا 30 گیگ هم نرمال حساب میشود، باید یک سری قواعد را رعایت کنید که در آینده به مشکل نخورد: استراکچر بهینه، لک ایندکس و ..
والله من یه حساب و کتاب کوچیک کردم که تو این سیستم ظرف مدت 5 سال چیزی حدود 90 میلیون یا نزدیک 100 میلیون رکورد ثبت خواهد شد!!!!
واقعا این حجم اطلاعات رو نمیشه کنترل کرد با همین MySql ساده؟؟ منظورم از ساده همونی که روی هاست ها ارائه میشه و....
چه چیزی رو باید رعایت کنم؟
میشه راهنمائی بفرمائید؟
- - - Updated - - -
نوع ذخیره سازی مثل mysam innodb هم مهمه که یکی قابلیت ریپرش بهتره ... یکی سرعتش... یکی مصرفش ..
اگه تنظیمات (بقول معروف کانفیگ) خوبی براش اعمال کنین هیچ مشکلی پیش نمیاد من الان تو دیتابیسم جدولی دارم بالای چند گیگ که تو هر بازدید کاربر مرورگرو ای پی و اینارو ذخیره میکنه
نیاز به راهنمائی های بیشتری دارم،
miladtnt
July 17th, 2016, 15:18
والله من یه حساب و کتاب کوچیک کردم که تو این سیستم ظرف مدت 5 سال چیزی حدود 90 میلیون یا نزدیک 100 میلیون رکورد ثبت خواهد شد!!!!
واقعا این حجم اطلاعات رو نمیشه کنترل کرد با همین MySql ساده؟؟ منظورم از ساده همونی که روی هاست ها ارائه میشه و....
چه چیزی رو باید رعایت کنم؟
میشه راهنمائی بفرمائید؟
- - - Updated - - -
نیاز به راهنمائی های بیشتری دارم،
https://www.google.com/search?espv=2&q=best+config+for+mysql+tables+for+big+datas&oq=best+config+for+mysql+tables+for+big+datas&gs_l=serp.3...37860.39833.0.40107.10.9.0.0.0.0.483 .1304.2-2j1j1.4.0....0...1c.1.64.serp..8.2.577...30i10.V9q 6oQ75wcI
یه دوری اینجا بزنین
T.Toosi
July 17th, 2016, 15:41
والله من یه حساب و کتاب کوچیک کردم که تو این سیستم ظرف مدت 5 سال چیزی حدود 90 میلیون یا نزدیک 100 میلیون رکورد ثبت خواهد شد!!!!
واقعا این حجم اطلاعات رو نمیشه کنترل کرد با همین MySql ساده؟؟ منظورم از ساده همونی که روی هاست ها ارائه میشه و....
چه چیزی رو باید رعایت کنم؟
میشه راهنمائی بفرمائید؟
استراکچر دیتابیس اسکریپت را تا جایی که میتوانید بهینه کنید ممکن است یک column دیتاتایپ bigint استفاده کند در صورتی که دیتاتایپ پایین ترین جوابگو بوده، در این صورت ابتدا مموری فول سپس دیتابیس شما میترکد، دوم اگر نمایش داده ندارید فقط از موتور innoDB استفاده کنید، سوم ابتدا دیسک سپس منابع اختصاصی تاثیر مستقیم بروی write read دیتابیس دارند و هزار فاکتور دیگر.. بازم اگر خیلی نگران هستید از یک متخصص پایگاه داده مشورت بگیرید شاید اصلا برای هدف شما یک سیستم مدیریت پایگاه داده دیگری پیشنهاد کند.
iroo
July 17th, 2016, 15:44
استراکچر دیتابیس اسکریپت را تا جایی که میتوانید بهینه کنید ممکن است یک column دیتاتایپ bigint استفاده کند در صورتی که دیتاتایپ پایین ترین جوابگو بوده، در این صورت ابتدا مموری فول سپس دیتابیس شما میترکد، دوم اگر نمایش داده ندارید فقط از موتور innoDB استفاده کنید، سوم ابتدا دیسک سپس منابع اختصاصی تاثیر مستقیم بروی write read دیتابیس دارند و هزار فاکتور دیگر.. بازم اگر خیلی نگران هستید از یک متخصص پایگاه داده مشورت بگیرید شاید اصلا برای هدف شما یک سیستم مدیریت پایگاه داده دیگری پیشنهاد کند.
ممنون از راهنمائی تون، باید بررسی بیشتری انجام بدم
سپاس
rezaonline.net
July 17th, 2016, 23:39
جدای از اون میتونید برروی فیلد تاریخ بصورت سالیانه عملیات پارتیشن بندی انجام بدید
تاثیرمناسبی داره
- - - Updated - - -
همچنین اگر تمایل به استفاده از پایگاه داده مناسبتری دارید postgresql مناسبتر هست
iroo
July 17th, 2016, 23:46
جدای از اون میتونید برروی فیلد تاریخ بصورت سالیانه عملیات پارتیشن بندی انجام بدید
تاثیرمناسبی داره
- - - Updated - - -
همچنین اگر تمایل به استفاده از پایگاه داده مناسبتری دارید postgresql مناسبتر هست
سالیانه؟
منظور اینکه اطلاعات سال های قبل رو از پروژه کنار بذارم تا پایگا داده سبک تری داشته باشم؟
اینطوری وقتی بخوام به اطلاعات اونا دسترسی پیدا کنم باید برو قبلی ها رو بگردم
postgresql واقعا از MYsql قوی تر هست؟؟؟؟؟
که بتونه 100 میلیون رکود و فاکتور فروش رو ذخیره کنه؟
hegza
July 18th, 2016, 00:08
سالیانه؟
منظور اینکه اطلاعات سال های قبل رو از پروژه کنار بذارم تا پایگا داده سبک تری داشته باشم؟
اینطوری وقتی بخوام به اطلاعات اونا دسترسی پیدا کنم باید برو قبلی ها رو بگردم
postgresql واقعا از MYsql قوی تر هست؟؟؟؟؟
که بتونه 100 میلیون رکود و فاکتور فروش رو ذخیره کنه؟
اصولا در اینگونه موارد آرشیو میکنند و مجموع رو میارند. مثلا از قبل از 1393 رو میریزند تیبل آرشیو و مجموع رو میزارند در فیلد یوزر و بکار میگیرند. و در صورت لزوم هر وقت لازم شد بهش کانکت میشند.
rezaonline.net
July 18th, 2016, 00:10
پارتیشن بندی در mysql رو جستجو کنید
در اصل میاد براساسی فیلدی که تعین میکنید فایلهای مجزا میسازه
برای اون جدول و باعث سرعت بیشتر میشه
نه داده ای از دست میره نه هیچ تغییری لازمه
یه قابلیت دیتابیس هست
Postgresql ذاتا چون فایلهای متعددی برای دیتاها میسازه سریعتره در رکوردهای بالا وفشار کمتری میاره
در مقایسه با mysql رم کمتری مصرف میکنه اما تقریبا دو برابر بیشتر هارد مصرف میکنه
پیشنهاد میکنم قبل از تولید نرم افزار ، ساختار دیتابیستون رو برام بفرستید تا راهنمایی کنم.
هنچنین به علت وجود دیتاتایپ جدید bson در postgresql میتوان خیلی از رابطه های چند به چند در mysql که نیاز به سه جدول داشتند با postgresql به لطف bson با دو جدول انجامش داد
در کل با این حجم دیتا ، باید خیلی روی دیتابیس حساس بشید
اگر اصرار به mysql دارید پیشنهادم percona یا mariadb با انجین xtradb هست
hegza
July 18th, 2016, 00:26
پارتیشن بندی در mysql رو جستجو کنید
در اصل میاد براساسی فیلدی که تعین میکنید فایلهای مجزا میسازه
برای اون جدول و باعث سرعت بیشتر میشه
نه داده ای از دست میره نه هیچ تغییری لازمه
یه قابلیت دیتابیس هست
Postgresql ذاتا چون فایلهای متعددی برای دیتاها میسازه سریعتره در رکوردهای بالا وفشار کمتری میاره
در مقایسه با mysql رم کمتری مصرف میکنه اما تقریبا دو برابر بیشتر هارد مصرف میکنه
پیشنهاد میکنم قبل از تولید نرم افزار ، ساختار دیتابیستون رو برام بفرستید تا راهنمایی کنم.
هنچنین به علت وجود دیتاتایپ جدید bson در postgresql میتوان خیلی از رابطه های چند به چند در mysql که نیاز به سه جدول داشتند با postgresql به لطف bson با دو جدول انجامش داد
در کل با این حجم دیتا ، باید خیلی روی دیتابیس حساس بشید
اگر اصرار به mysql دارید پیشنهادم percona یا mariadb با انجین xtradb هست
احسنت.
قبل از استارت کار دستتون خیلی بازتره اما بعدا کمی دستتون بسته تر میشه. پیاده سازی معماری اصولی عین محاسبه اسکلت یک ساختمونه کار رو استارت زدین دستتون بسته تر میشه.(البته نه لزوما تا این حد بسته!! خوبی برنامه نویسی همینه میشه معماری رو تغییر داد ولی خوب هزینه و زمان بیشتری رو از شما خواهد گرفت)
- - - Updated - - -
این آقا رضا تقریبا سیستم هائی رو طراحی کردن که رکوردهاشون از رکوردهائی که شما نوشتید بسیار بیشتر بوده و موفق هم عمل کردن. و تائید میشند به شدت
arash_fa
July 19th, 2016, 14:35
همه فرموده های دوستان درست است
ولی گزینه پارتیشن بندی کردن بر اساس تاریخ بسیار ایده و کار خوبی میباشد مثل این هست که شما هارد دیسک خودتونو پارتیشن بندی گنید و یک پارتیشن برای آهنگ یکی برای فیلم و دیکری برای بازی
طبق نیاز میرید پارتیشن مورد نظر را انتخاب میکنید و عملا حجم عظیمی از اطلاعات فقط بایگانی می ماند