نمایش نتایج 1 تا 23 از 23

نام تاپیک: به روز رسانی چند میلیون رکورد

  1. #1
    کاربر دائمی آواتار leaping
    تاریخ عضویت
    آذر 1391
    محل زندگی
    تهران از سنندج
    پست
    480

    به روز رسانی چند میلیون رکورد

    سلام
    دوستان میخواستم بدونم به روز رسانی چند میلیون رکورد در یک دیتابیس مشکل خاصی از نظر بهینه بودن داره؟
    یعنی اینکه به روز رسانی یکجای این همه رکورد بار اضافی خیلی زیاد میتونه واسه دیتابیس داشته باشه یا نه؟

  2. #2
    کاربر دائمی آواتار Unique
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    ایران - اصفهان
    پست
    3,199

    نقل قول: به روز رسانی چند میلیون رکورد

    به روز رسانی یعنی چی ؟
    چند میلیون رکورد چی ؟ طول رکورد از نظر نوع data چقدره ! وضعیت index ها چقدره ؟
    خیلی اما و اگر داره سوالتون

  3. #3
    کاربر دائمی آواتار leaping
    تاریخ عضویت
    آذر 1391
    محل زندگی
    تهران از سنندج
    پست
    480

    نقل قول: به روز رسانی چند میلیون رکورد

    نقل قول نوشته شده توسط Unique مشاهده تاپیک
    به روز رسانی یعنی چی ؟
    چند میلیون رکورد چی ؟ طول رکورد از نظر نوع data چقدره ! وضعیت index ها چقدره ؟
    خیلی اما و اگر داره سوالتون
    ممنون از پیگیری
    ببینید دوست عزیز که همیشه انقد جزئیات ریز میخوی
    منظورم از به روز رسانی واضحه = update
    بعدشم اینکه یک تک ستون از نوع 255 varchar و در یک جدول و خب چند میلیون رکورد هم واضحه دیگه
    چند میلیون رکورد :D و خب البته index هم نیست

  4. #4

    نقل قول: به روز رسانی چند میلیون رکورد

    به شما اگه بگن شماره تلفن چند میلیون نفر رو توی یک دفتر تلفن اصلاح کنید و بگن هیچ ترتیبی هم وجود نداره و نمیدونیم اسم هر نفر رو کجای دفتر نوشتیم (عدم وجود ایندکس) و باید یکی یکی بگردین اسامی رو پیدا کنین و شماره ها رو اصلاح کنین، بهتون فشار میاد یا نه؟ دیتابیس هم همینه اوضاعش. حالا شما برای اینکه بهتون فشار نیاد چیکار میکنین؟ تقسیم میکنید میگین هر یک ساعت اینقدر اصلاح میکنم و بعد نیم ساعت استراحت و بعد دوباره شروع میکنم ادامه کار. دیتابیس هم مثل شماست. بهش فشار نیارین. بخصوص اینکه قراره همزمان جواب بقیه درخواستها رو هم بده. درست مثل اینکه به شما بگن در همون زمانی که دارین اطلاعات رو اصلاح میکنید، اگه یکی ازتون شماره یک نفر رو خواست، بگردین براش پیدا هم بکنید.

  5. #5

    نقل قول: به روز رسانی چند میلیون رکورد

    نقل قول نوشته شده توسط leaping مشاهده تاپیک
    ببینید دوست عزیز که همیشه انقد جزئیات ریز میخوی
    ابداً موضوع خنده داری نمیدونم این مسئله رو. وقتی جواب راهگشا میخواین، باید دقیقاً سناریوی خودتون رو توضیح بدین. دکتر که تشریف میبرین و میگین سرما خوردم، دیگه معاینه نمیکنه؟ صرفاً به همون بیان اسم بیماری ازطرف شما اکتفا میکنه یا دقیقاً باید مشکل رو بدونه تا بتونه راه حل ارائه بده؟

  6. #6
    کاربر دائمی آواتار Unique
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    ایران - اصفهان
    پست
    3,199

    نقل قول: به روز رسانی چند میلیون رکورد

    منظورم از به روز رسانی واضحه = update
    یعنی شما میخواین یک میلیون رکورد را برای کوئری update بنویسین !؟ (جالبه)

    بعدشم اینکه یک تک ستون از نوع 255 varchar و در یک جدول و خب چند میلیون رکورد هم واضحه دیگه
    چیش واضحه !؟ شما تازه این اطلاعات را دادین ! یعنی جدول شما رکورد ID نداره ؟ شما فقط یک تک ستون دارین که هم SET میکنین هم توی WHERE میگذارین ؟ ستون مورد نظر یکتا هستش و مقدار تکراری نداره ؟

    ببینید دوست عزیز که همیشه انقد جزئیات ریز میخوی
    راستش مشکل سوالات شما اینه که شما فرض میکنید دوستان انجمن جزئیات کار شما را میدونن ! و این خیلی جالبه در صورتی که سوالتون واقعا نیاز به توضیحات بیشتری داره.

    حالا اگه خوشتون نمیاد بیشتر توضیح بدین :
    راستش به روز رسانی همه رکورد ها با update اگه واقعا قرار بر این هست که همه دوباره به روز بشن اشتباهه و با insert سرعت بیشتری خواهید داشت ، مخصوصا اگه اون تک ستون شما یکتا نیست و فیلد ID هم ندارین و کلا هیچ INDEX ی که یکتا باشه ندارین ! با این تفاسیر باید چند ساعتی صبر کنید اما با INSERT و یک سیستم خوب توی چند ثانیه حله !

  7. #7
    کاربر دائمی آواتار leaping
    تاریخ عضویت
    آذر 1391
    محل زندگی
    تهران از سنندج
    پست
    480

    نقل قول: به روز رسانی چند میلیون رکورد

    آخه نمیدونم شما دقیقا چه توضیحات و ریز جزئیاتی میخواین و کل برنامه رو هم نمیشه اینجا نوشت که
    بعدشم فرض کنید من در یک دیتابیس یه جدول دارم که در اون اسامی جدول اینطوری هست
    id userid group title comment

    و از اون طرف اطلاعات یوز یا کاربر ما در یک جدول دیگه در یک دیتابیس دیگه به این ترتیب هست

    id userid group title comment

    خب حالا در بخش کامنت فرض کنید یک میلیون رکورد هست و در هر کامنت id کاربر و group کاربری هم مشخص شده ( از اینکه گروه رو هم در اینجا قید کردم به دلیل این هست که درون کامنت یک سری فیلترها با query ارسال میشه که خود جناب uniqe کم تا بیش در جریان این فیلتر هستن) از اونجایی که نمیشه بین دوتا رکورد در دوتا دیتابیس مختلف realtion زد در نتیجه وقتی از اون طرف گروه کاربری یک یوزر تغییر میکنه از این طرف رکوردهاشم باید این تغییرات رو اعمال کنن در بخش کامنت خب در این صورت از update استفاده میشه اگه اشتباه نکنم و یا اگر راه دیگری هست خوشحال میشم بدونم

  8. #8
    کاربر دائمی آواتار j_naroogha@yahoo.com
    تاریخ عضویت
    آبان 1388
    محل زندگی
    Microfoft Visual Studio Ultimate Version
    سن
    33
    پست
    388

    نقل قول: به روز رسانی چند میلیون رکورد

    http://stackoverflow.com/questions/1...scade-in-mysql
    میشه اینکارو بکنی....

  9. #9
    کاربر دائمی آواتار leaping
    تاریخ عضویت
    آذر 1391
    محل زندگی
    تهران از سنندج
    پست
    480

    نقل قول: به روز رسانی چند میلیون رکورد

    نقل قول نوشته شده توسط j_naroogha@yahoo.com مشاهده تاپیک
    http://stackoverflow.com/questions/1...scade-in-mysql
    میشه اینکارو بکنی....
    دوست عزیز این امر درون یک دیتابیس صدق میکنه
    نه دوتا دیتابیس

  10. #10
    کاربر دائمی
    تاریخ عضویت
    اسفند 1393
    محل زندگی
    تهران
    پست
    174

    نقل قول: به روز رسانی چند میلیون رکورد

    شاید منظور این است که اصلا قرار نیست where داشته باشه و صرفا شاید میخواید همه رکوردها یک فیلد مشخص مقداری خاص بگیرن , مثل این کوئری :

    update `table` set `active`='1'


    نه آقا کوئری رو اجرا کن , من موندم شما چه کاری رو دست گرفتی که چند میلیون رکورد داره !!!

    شاید روی پروژه یارانه های دولت و از برنامه نویس های شرکت ( ... ) هستی

  11. #11
    کاربر دائمی
    تاریخ عضویت
    بهمن 1391
    محل زندگی
    جزیره مارماری
    پست
    1,137

    نقل قول: به روز رسانی چند میلیون رکورد

    نقل قول نوشته شده توسط leaping مشاهده تاپیک
    آخه نمیدونم شما دقیقا چه توضیحات و ریز جزئیاتی میخواین و کل برنامه رو هم نمیشه اینجا نوشت که
    بعدشم فرض کنید من در یک دیتابیس یه جدول دارم که در اون اسامی جدول اینطوری هست
    id userid group title comment

    و از اون طرف اطلاعات یوز یا کاربر ما در یک جدول دیگه در یک دیتابیس دیگه به این ترتیب هست

    id userid group title comment

    خب حالا در بخش کامنت فرض کنید یک میلیون رکورد هست و در هر کامنت id کاربر و group کاربری هم مشخص شده ( از اینکه گروه رو هم در اینجا قید کردم به دلیل این هست که درون کامنت یک سری فیلترها با query ارسال میشه که خود جناب uniqe کم تا بیش در جریان این فیلتر هستن) از اونجایی که نمیشه بین دوتا رکورد در دوتا دیتابیس مختلف realtion زد در نتیجه وقتی از اون طرف گروه کاربری یک یوزر تغییر میکنه از این طرف رکوردهاشم باید این تغییرات رو اعمال کنن در بخش کامنت خب در این صورت از update استفاده میشه اگه اشتباه نکنم و یا اگر راه دیگری هست خوشحال میشم بدونم
    شما هیچ توضیحی درباره به روز رسانی ندادید که به روز رسانیتون جدوله؟فیلده؟اگه فیلده نوعش چیه؟و هزار تا چیز دیگه و میخواید راهنماییتون کنن؟

  12. #12
    کاربر دائمی آواتار leaping
    تاریخ عضویت
    آذر 1391
    محل زندگی
    تهران از سنندج
    پست
    480

    نقل قول: به روز رسانی چند میلیون رکورد

    نقل قول نوشته شده توسط m.esmaeilzadeh مشاهده تاپیک
    شاید منظور این است که اصلا قرار نیست where داشته باشه و صرفا شاید میخواید همه رکوردها یک فیلد مشخص مقداری خاص بگیرن , مثل این کوئری :

    update `table` set `active`='1'


    نه آقا کوئری رو اجرا کن , من موندم شما چه کاری رو دست گرفتی که چند میلیون رکورد داره !!!

    شاید روی پروژه یارانه های دولت و از برنامه نویس های شرکت ( ... ) هستی
    چرا اتفاقا به این صورت از Where هم استفاده میشه

  13. #13
    کاربر دائمی آواتار Unique
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    ایران - اصفهان
    پست
    3,199

    نقل قول: به روز رسانی چند میلیون رکورد

    جناب leaping بگذارین من اینطوری پاسخ شما را بدم. شما خیلی زود دارین در مورد فشار به database و تعداد رکورد احتمالی و غیره فکر میکنید. فعلا سعی کنید با حداقل آگاهی که از بهینه سازی پایگاه های داده و نوشتن Query دارین کارتون را تکمیل کنید و هر زمانی به مشکل خوردین با گذاشتن کد کامل و توضیحات دیگه بهینه سازی کنید. من که با توضیحات فعلی کمک بیشتری از دستم بر نمیاد.

  14. #14
    کاربر دائمی آواتار leaping
    تاریخ عضویت
    آذر 1391
    محل زندگی
    تهران از سنندج
    پست
    480

    نقل قول: به روز رسانی چند میلیون رکورد

    نقل قول نوشته شده توسط Mohammadsgh مشاهده تاپیک
    شما هیچ توضیحی درباره به روز رسانی ندادید که به روز رسانیتون جدوله؟فیلده؟اگه فیلده نوعش چیه؟و هزار تا چیز دیگه و میخواید راهنماییتون کنن؟
    توضیحاتم به اندازه کافی بوده و منم نخواستم بهم جزئیات دقیق مقدار مشغول بودن دیتابیس رو بگن
    بلکه گفتم استفاده از دستور update روی یک فیلد در میلیون ها رکورد برای به روزرسانی و تغییرش , سرور و خیلی مشغول میکنه یا نه؟

  15. #15
    کاربر دائمی آواتار leaping
    تاریخ عضویت
    آذر 1391
    محل زندگی
    تهران از سنندج
    پست
    480

    نقل قول: به روز رسانی چند میلیون رکورد

    نقل قول نوشته شده توسط Unique مشاهده تاپیک
    جناب leaping بگذارین من اینطوری پاسخ شما را بدم. شما خیلی زود دارین در مورد فشار به database و تعداد رکورد احتمالی و غیره فکر میکنید. فعلا سعی کنید با حداقل آگاهی که از بهینه سازی پایگاه های داده و نوشتن Query دارین کارتون را تکمیل کنید و هر زمانی به مشکل خوردین با گذاشتن کد کامل و توضیحات دیگه بهینه سازی کنید. من که با توضیحات فعلی کمک بیشتری از دستم بر نمیاد.
    مشکل اینجاست که همین الان در ابتدا چند ده هزار رکورد دارم و دارم به این فک میکنم که بخوام یک فیلد رو آپدیت کنم چه فشاری به سرور میاد
    حالا من نمیدونم شما دقیقا چیا میخواید اما من اطلاعات رو که گفتین گذاشتم دیگه نمیدونم چیا لازم دارید

  16. #16
    کاربر دائمی آواتار Unique
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    ایران - اصفهان
    پست
    3,199

    نقل قول: به روز رسانی چند میلیون رکورد

    که بخوام یک فیلد رو آپدیت کنم چه فشاری به سرور میاد
    معمولا فیلد را با ستون ID که یکتا هست و Primary Index هست Update میکنند. Update کردن ۱ رکورد که هیچی ۱۰۰ تا رکورد هم با استفاده از این ستون هیچ زمانی نمیگیره و هیچ فشاری هم به Database نمیاد ! حتی اگه دیتابیستون ۵۰ میلیون رکورد داشته باشه. چند صد هزار تا که یکجور شوخیه. MySQL و MariaDb و PostgreSQL را انقدر دست کم نگیرید. البته به قدرت سرور هم خیلی بستگی داره. خودم توی یک پروژه دارم روی ۳ میلیون رکورد هر روز ۷۰۰ یا ۸۰۰ بروزرسانی خیلی راحت و بدون فشار به سرور انجام میدم !

  17. #17
    کاربر دائمی آواتار leaping
    تاریخ عضویت
    آذر 1391
    محل زندگی
    تهران از سنندج
    پست
    480

    نقل قول: به روز رسانی چند میلیون رکورد

    نقل قول نوشته شده توسط Unique مشاهده تاپیک
    معمولا فیلد را با ستون ID که یکتا هست و Primary Index هست Update میکنند. Update کردن ۱ رکورد که هیچی ۱۰۰ تا رکورد هم با استفاده از این ستون هیچ زمانی نمیگیره و هیچ فشاری هم به Database نمیاد ! حتی اگه دیتابیستون ۵۰ میلیون رکورد داشته باشه. چند صد هزار تا که یکجور شوخیه. MySQL و MariaDb و PostgreSQL را انقدر دست کم نگیرید. البته به قدرت سرور هم خیلی بستگی داره. خودم توی یک پروژه دارم روی ۳ میلیون رکورد هر روز ۷۰۰ یا ۸۰۰ بروزرسانی خیلی راحت و بدون فشار به سرور انجام میدم !
    آقا دمت گرم من همین رو میخواستم
    معلومه که از id استفاده شده تو ساختار جدول هم همون بالا توضیح دادم و بازهم معلومه که از primary استفاده کردم دیگه اینا از بدیهیات
    من فقط میخواستم بدونم این چندص هزارتا خیلی فشار میاره یا نه ؟
    همین
    ممنون

  18. #18
    کاربر دائمی
    تاریخ عضویت
    اسفند 1393
    محل زندگی
    تهران
    پست
    174

    نقل قول: به روز رسانی چند میلیون رکورد

    نقل قول نوشته شده توسط Unique مشاهده تاپیک
    معمولا فیلد را با ستون ID که یکتا هست و Primary Index هست Update میکنند. Update کردن ۱ رکورد که هیچی ۱۰۰ تا رکورد هم با استفاده از این ستون هیچ زمانی نمیگیره و هیچ فشاری هم به Database نمیاد ! حتی اگه دیتابیستون ۵۰ میلیون رکورد داشته باشه. چند صد هزار تا که یکجور شوخیه. MySQL و MariaDb و PostgreSQL را انقدر دست کم نگیرید. البته به قدرت سرور هم خیلی بستگی داره. خودم توی یک پروژه دارم روی ۳ میلیون رکورد هر روز ۷۰۰ یا ۸۰۰ بروزرسانی خیلی راحت و بدون فشار به سرور انجام میدم !
    یک سوال : اگر یک فیلد عددی مثلا شماره تلفن رو index بزاریم سرعتش برای جستجو خیلی سریع میشه !
    اگر فیلد کاراکتر مثلا نام و نام فامیلی باشه چی ؟ میتونه موثر باشه ؟!
    باید نوع index رو چی بزاریم ؟

  19. #19
    کاربر دائمی
    تاریخ عضویت
    آبان 1390
    محل زندگی
    http://reza.biz
    پست
    858

    نقل قول: به روز رسانی چند میلیون رکورد

    نقل قول نوشته شده توسط m.esmaeilzadeh مشاهده تاپیک
    یک سوال : اگر یک فیلد عددی مثلا شماره تلفن رو index بزاریم سرعتش برای جستجو خیلی سریع میشه !
    اگر فیلد کاراکتر مثلا نام و نام فامیلی باشه چی ؟ میتونه موثر باشه ؟!
    باید نوع index رو چی بزاریم ؟
    فیلدی رو index بذارید که عملیات sort و دستورات شرطی روش انجام میشه .
    سعی کنید فیلد عددی باشه
    اگر unique بود که چه بهتر
    در غیر اینصورت اولویت رو روی char و سپس varchar بذارید .
    سعی کنید فیلدی که ایندکس میذارید مقدار null نگیره .

    آقا دمت گرم من همین رو میخواستم
    معلومه که از id استفاده شده تو ساختار جدول هم همون بالا توضیح دادم و بازهم معلومه که از primary استفاده کردم دیگه اینا از بدیهیات
    من فقط میخواستم بدونم این چندص هزارتا خیلی فشار میاره یا نه ؟
    همین
    ممنون
    این دو تا عکس رو ببین و بشین پروژه تو انجام بده
    اولیش تعداد رکوردهاش معلومه 5.5 میلیون رکورد
    1.png


    اینم یه آپدیت برای جنابعالی تا سرعتشو ببینی
    2.png

    :)
    حالا با خیال راحت بشین بقیه پروژه تو بنویس نگران دیتابیس نباش

  20. #20
    کاربر دائمی آواتار leaping
    تاریخ عضویت
    آذر 1391
    محل زندگی
    تهران از سنندج
    پست
    480

    نقل قول: به روز رسانی چند میلیون رکورد

    اصن حرکتت از پهنا تو حلقم :D دمت گرم
    ولی رضا یه چیزی
    این 3 row affected اینجا یکم درگیرم کرد.تو این هم زیاد فرقی نمیکنه این قضیه؟
    آخرین ویرایش به وسیله MMSHFE : دوشنبه 31 فروردین 1394 در 08:34 صبح دلیل: عدم نیاز به نقل قول

  21. #21

    نقل قول: به روز رسانی چند میلیون رکورد

    لطفاً وقتی درست پشت سر پست قبلی دارین جواب میدین، نقل قول نکنید. پستها طولانی میشن و خوندنش مشکل میشه و دیتابیس سایت رو هم بیهوده سنگین میکنید.

  22. #22
    کاربر دائمی
    تاریخ عضویت
    آبان 1390
    محل زندگی
    http://reza.biz
    پست
    858

    نقل قول: به روز رسانی چند میلیون رکورد

    ولی رضا یه چیزی
    این 3 row affected اینجا یکم درگیرم کرد.تو این هم زیاد فرقی نمیکنه این قضیه؟
    نه مشکلی نداره .
    هر شرطی روی کلید اصلی ات انجام بشه هیچ مشکلی نداره روی هرچند تعداد رکوردی که داشته باشی.
    اصلا خودت تست کن ، یه دیتابیس بساز یه میلیون اینزرت کن توش راحته که :)

    کد HTML:
    update items set browser_version=34,minute=34 where id=6555956 Query executed OK, 1 row affected. (0.001 s) Edit  

  23. #23
    کاربر دائمی آواتار parsidev
    تاریخ عضویت
    شهریور 1384
    محل زندگی
    همین حوالی
    پست
    258

    نقل قول: به روز رسانی چند میلیون رکورد

    اگه فیلد آپدیت یا varchar زیر 4000 کاراکتر باشه میشه گفت ؛ سرور درگیر نمیشه
    اما ترجیحا برای بهینه شدن بانک اطلاعاتی و بالطبع کمتر شدن زمان تراکنش اگه فیلد ذکر شده در بخش where ایندکس شده باشه خیلی بهتر خواهد بود

تاپیک های مشابه

  1. پاسخ: 12
    آخرین پست: جمعه 07 مرداد 1390, 01:26 صبح
  2. به روز رسانی چند جدول همزمان
    نوشته شده توسط sevigol در بخش مطالب مرتبط با بانکهای اطلاعاتی در VB6
    پاسخ: 0
    آخرین پست: پنج شنبه 22 مرداد 1388, 17:00 عصر
  3. پیغام خطا هنگام به روز رسانی یک رکورد
    نوشته شده توسط mostafa612003 در بخش Classic ASP
    پاسخ: 1
    آخرین پست: دوشنبه 08 مهر 1387, 12:36 عصر
  4. جستجو در میان چند میلیون رکورد اطلاعات!!!
    نوشته شده توسط yaas135 در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 2
    آخرین پست: دوشنبه 14 دی 1383, 10:06 صبح
  5. جستجو در میان چند میلیون رکورد اطلاعات!!!
    نوشته شده توسط yaas135 در بخش SQL Server
    پاسخ: 1
    آخرین پست: دوشنبه 14 دی 1383, 09:01 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •