PDA

View Full Version : آیا این کار اصولی هست (دیتابیس حجیم)



olampiad
جمعه 06 شهریور 1394, 00:36 صبح
سلام و خسته نباشید
به این آدرس برید
http://www.cvmkr.ir (http://www.cvmkr.ir/)

این پروزه رو قبلا بهتون معرفی کرده بودم.
سایتی هستش که به کمک اون میتونم رزومه های مختلفی رو بسازم.
به تصاویری که براتون میفرستم ی نگا بندازید.
تو هر تصویر تعدادی فیلد وردی مشاهده می کنید.
من محتوای همه ی این فیلد هارو ب آرایه تبدیل کردم و بعدش آرایه رو با تابع serializ کد کردم و بعد از این این کد رو در دیتابیس ذخیره کردم.
الآن به تصاویر نگا کنید.
من همه ی سوابق مسئولیت های اجرایی که حدود 105 تا فیلد میشه رو serializ کردم و در یک فیلد جدول دخیره کردم.
جدوب من حدود 17 تا چنین فیلدی داره و در داخل هر فیلد هم اطلاعاتی مانند کد زیر دخیره میکنم.
در کل هر رکورد من حدودا 110 کیلو بایت میشه.
حالا خواستم ببینم آیا این کار من اصولی هستش.
دیتابیس من بعد از مدتی سنگین بشه مشکل ساز خواهد بوووود.
من ی تصویر هم از دیتابیس براتون فرستادم.
خیلی ممنون

داخل هر فیلد من در جدول کدهای زیر قرار دارد.
و من حدودا 17 تا فیلد دارم.
اگه من بخوام اصولی کار کنم حدودا باید 17 تا جدول داشته باشم که این 17 تا رو در یک جدول ذخیره کردم.
خیلی ممنون

a:6:{i:0;a:16:{i:0;s:0:"";i:1;s:0:"";i:2;s:0:"";i:3;s:0:"";i:4;s:0:"";i:5;s:0:"";i:6;s:0:"";i:7;s:0:"";i:8;s:0:"";i:9;s:0:"";i:10;s:0:"";i:11;s:0:"";i:12;s:0:"";i:13;s:0:"";i:14;s:0:"";i:15;s:0:"";}i:1;a:16:{i:0;s:0:"";i:1;s:0:"";i:2;s:0:"";i:3;s:0:"";i:4;s:0:"";i:5;s:0:"";i:6;s:0:"";i:7;s:0:"";i:8;s:0:"";i:9;s:0:"";i:10;s:0:"";i:11;s:0:"";i:12;s:0:"";i:13;s:0:"";i:14;s:0:"";i:15;s:0:"";}i:2;a:16:{i:0;s:0:"";i:1;s:0:"";i:2;s:0:"";i:3;s:0:"";i:4;s:0:"";i:5;s:0:"";i:6;s:0:"";i:7;s:0:"";i:8;s:0:"";i:9;s:0:"";i:10;s:0:"";i:11;s:0:"";i:12;s:0:"";i:13;s:0:"";i:14;s:0:"";i:15;s:0:"";}i:3;a:16:{i:0;s:0:"";i:1;s:0:"";i:2;s:0:"";i:3;s:0:"";i:4;s:0:"";i:5;s:0:"";i:6;s:0:"";i:7;s:0:"";i:8;s:0:"";i:9;s:0:"";i:10;s:0:"";i:11;s:0:"";i:12;s:0:"";i:13;s:0:"";i:14;s:0:"";i:15;s:0:"";}i:4;a:16:{i:0;s:0:"";i:1;s:0:"";i:2;s:0:"";i:3;s:0:"";i:4;s:0:"";i:5;s:0:"";i:6;s:0:"";i:7;s:0:"";i:8;s:0:"";i:9;s:0:"";i:10;s:0:"";i:11;s:0:"";i:12;s:0:"";i:13;s:0:"";i:14;s:0:"";i:15;s:0:"";}i:5;a:16:{i:0;s:0:"";i:1;s:0:"";i:2;s:0:"";i:3;s:0:"";i:4;s:0:"";i:5;s:0:"";i:6;s:0:"";i:7;s:0:"";i:8;s:0:"";i:9;s:0:"";i:10;s:0:"";i:11;s:0:"";i:12;s:0:"";i:13;s:0:"";i:14;s:0:"";i:15;s:0:"";}}

134676


134677

134678

134679

134680

ژیار رحیمی
جمعه 06 شهریور 1394, 02:41 صبح
دوست گرامی لازم (و اصولی)نیست تمام فیلدهای یه رکورد سریالایز شود. هم سرعت خوندن و نوشتن رو کاهش میده هم حجم دیتابیس رو بالا میبره .بهتره جاهایی که امنیت مهمه سریالایز صورت گیرد.مثل پسورد کاربر یا نام کاربری.

djtrex
جمعه 06 شهریور 1394, 14:17 عصر
دیتابیستون نرمال سازی سطح ۱ (1nf) رو نداره یعنی فیلدها atomic نیست و چند مقداری هست اگه نمیتونید اینارو به جدول ها و رکورد های مختلف تبدیل کنید و رابطه های 1-1 یا یک به چند و یا چند به چند تبدیل کنید (به هر دلیلی) بهتره از دیتابیس های NoSQL مبتنی بر داکیومنت مثل MongoDB یا CouchDB استفاده کنید.

الان به این سبک قابل کوئری گرفتن و جستجو توی اونها نیست حتما باید همه رکورد هارو بگیرید (البته اگه نیاز به کوئری گرفتن دارید).


در ضمن به جای php serialize میتونید از json هم استفاده کنید اینجا مقایسه اش از لحاظ پرفرمنس هست:
http://cw-internetdienste.de/2015/05/04/serialize-vs-json_encode/