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

نام تاپیک: MySQL Storage Engines

  1. #1

    Question MySQL Storage Engines

    سلام دوستان.
    میخواستم درباره ی تفاوت های storage engine های MySQL بدونم . یعنی با هر کدوم چه کارایی رو میشه انجام داد که با بقیه نمیشه و برای چه کارهایی از کدوم استفاده کنیم . storage engin های مورد نظر من که میخوام دربارشون بدونم اینا هستن : MyISAM , InnoDB , MEMORY . لطفا توضیحات جزیی نباشه . InnoDB از همه مهمتره

    تشکر . به امید دیدار !

  2. #2
    . آواتار oxygenws
    تاریخ عضویت
    دی 1382
    محل زندگی
    تهران/مشهد
    پست
    6,333
    مهم ترین خاصیت innodb پشتیبانی از transaction است.
    مهم ترین خاصیت memory هم سرعت است (اما این جداول موقتی هستند و با خاموش شدن سرور از بین می رن)
    مهم ترین خاصیت myisam هم سرعتش و دم دستی بودنش است (مخصوصا نسبت به innodb)
    ایمیل من
    سایت من

    عضویت در جامعه‌ی اهدای عضو

    Direct PGP key: http://tinyurl.com/66q5cy
    PGP key server: keyserver.ubuntu.com
    PGP name to search: omidmottaghi

  3. #3
    مهم ترین خاصیت innodb پشتیبانی از transaction است.
    مهم ترین خاصیت memory هم سرعت است (اما این جداول موقتی هستند و با خاموش شدن سرور از بین می رن)
    مهم ترین خاصیت myisam هم سرعتش و دم دستی بودنش است (مخصوصا نسبت به innodb)
    سلام . ممنون از جواب سریعتون . من بالا نوشته بودم لطفا توضیحات جزیی نباشه منظورم این بود که مختصر نباشه !! :دی اشباه نشه .
    خط اول و دوم رو میدونستم .
    منظور شما از خط سوم حرفتون اینه که MyISAM از InnoDB سریعتره ؟
    منظورتون از دستی بودن MyISAM چیه ؟
    ممنون.

  4. #4
    . آواتار oxygenws
    تاریخ عضویت
    دی 1382
    محل زندگی
    تهران/مشهد
    پست
    6,333
    آره، سریع تره، توی کار های small و شاید medium. دم دستی هم تقریبا به همین مورد اشاره داره :)

    برای توضیخات تکمیلی هم اینو بخون:
    http://dev.mysql.com/doc/refman/5.0/...e-engines.html
    ایمیل من
    سایت من

    عضویت در جامعه‌ی اهدای عضو

    Direct PGP key: http://tinyurl.com/66q5cy
    PGP key server: keyserver.ubuntu.com
    PGP name to search: omidmottaghi

  5. #5
    . آواتار oxygenws
    تاریخ عضویت
    دی 1382
    محل زندگی
    تهران/مشهد
    پست
    6,333
    ضمنا innodb از row-locking پشتیبانی می کنه که حداقل می دونم myisam فقط table-lock داره (نمی دونم memory چی داره!! ولی به هر حال اون زیاد مهم نیست، چون سرعتش خیلی خیلی زیاده!)
    ایمیل من
    سایت من

    عضویت در جامعه‌ی اهدای عضو

    Direct PGP key: http://tinyurl.com/66q5cy
    PGP key server: keyserver.ubuntu.com
    PGP name to search: omidmottaghi

  6. #6
    ممنون . ولی من انگلیسیم در حدی نیست که بخوام اینهمه صفحه رو بخونم . یه خلاصه فارسی اگه از این صفحه بدید ممنون میشم : http://en.wikipedia.org/wiki/InnoDB زیاد نیست 10 خطه حدودا .
    بعد در مورد Lock شدن جدول و سطر هم یکم توضیح بدید . یعنی اینکه به چه دردی میخوره ! ( اصلا کلا چیه !)

    حالا برای مثال . اگه یه جدول داشته باشیم به اسم ! Users که یک میلیون یوزر توش هست و طبیعتاً SELECT هاش بیشتر از UPDATE ها هست (چون معمولا لوگین کردن یوزر ها از ثبت نام بیشتره) . از کدوم بهتره استفاده بشه . توضیح بدید لطفا .
    تشکر

  7. #7
    . آواتار oxygenws
    تاریخ عضویت
    دی 1382
    محل زندگی
    تهران/مشهد
    پست
    6,333
    بعد در مورد Lock شدن جدول و سطر هم یکم توضیح بدید . یعنی اینکه به چه دردی میخوره ! ( اصلا کلا چیه !)
    وقتی یه داده ای توی جدول به روز میشه یا ... بقیه باید پشت صف بمونند تا کار اون کوئری تموم بشه تا اجرا بشن.
    حالا این لاک شدن توی myisam در سطح کل جدوله و در innodb در سطح فقط همون سطر هایی که داره به روز میشن یا ...

    در این موردی که گفتی، زیاد فرقی بین myisam و innodb نمی بینم.
    ایمیل من
    سایت من

    عضویت در جامعه‌ی اهدای عضو

    Direct PGP key: http://tinyurl.com/66q5cy
    PGP key server: keyserver.ubuntu.com
    PGP name to search: omidmottaghi

  8. #8
    مرسی . اینجوری که من تا اینجا فهمیدم InnoDB بهتره (transaction & row lock) . با innodb میشه insert های همزمان انجام داد و چیزی هم از myisam کمتر نداره . درسته ؟
    ولی اینی که قبلا گفتی myisam سرعتش بیشتره بدجوری گزاشتتم تو کف ! سرعت چیش بیشتره ؟ تو چه کاری سریع تره ؟

    یه سوال دیگه : تو phpMyAdmin ی رو کامپیوترم نصب هست وقتی که وارد یه جدول MyISAM میشم که هیچی ! ولی وقتی وارد یه جدول InnoDB میشم , بالا , کنار اسم جدول نوشته : "InnoDB free:8192 kB" . این یعنی چی ؟

  9. #9
    . آواتار oxygenws
    تاریخ عضویت
    دی 1382
    محل زندگی
    تهران/مشهد
    پست
    6,333
    نگاه کن، همونطور که خودت هم اول گفتی، هر چیزی رو برای کاری ساختند... مسلما شخم زدن زمین با یک ماشین مدل بالا احمقانه است!

    همینطور، مثلا استفاده کردن از پایگاه دادهء oracle برای طراحی یک سایت ساده برای یک فروشگاه کوچیک و حتی متوسط احمقانه است!

    به نظر می رسه جایی که تراکنش نداری، نیازی به استفاده از innodb نیست. چون myisam هم memory footprint کمتری داره و در کل سرعت پردازشش سریع تره (فارغ از بدی های table-locking)

    البته اینها نظرات منه، در این طور مسایل هر کس نظر خودش رو داره چون مرز مشخصی بین این مسایل نیست :)

    در مورد سوال دومت هم نمی دونم.
    ایمیل من
    سایت من

    عضویت در جامعه‌ی اهدای عضو

    Direct PGP key: http://tinyurl.com/66q5cy
    PGP key server: keyserver.ubuntu.com
    PGP name to search: omidmottaghi

  10. #10
    1-اگه من بخوام از تراکنش استفاده کنم مثلا یه جدول برای یوزرها داریم که اطلاعات لوگین و .... توشه. این جدول رو بزارم MyISAM و یه جدول دیگه بسازم برای مثلا پولی که تو حساب یوزر ها هست و موتورشو InnoDB بزارم و به جدول یوزرها ربطش بدم . این فکر خوبیه یا نه ؟؟!!

    2-در مورد INSERT و ,UPDATE های همزمان . MyISAM که پشتیبانی نمیکنه .. ؟
    memory footprint -3 چیه ؟؟

    مثلا استفاده کردن از پایگاه دادهء oracle برای طراحی یک سایت ساده برای یک فروشگاه کوچیک و حتی متوسط احمقانه است!
    4 - استفاده از MySQL برای یه سایت خیلی بزرگ چی ؟ احمقانست ؟ (اگه اره از چه نظر؟)

  11. #11
    . آواتار oxygenws
    تاریخ عضویت
    دی 1382
    محل زندگی
    تهران/مشهد
    پست
    6,333
    ۱- آره... البته فکر کنم باید هر دو طرف رابطه رو innodb بذاری.
    ۲- نه، اما سرعت خیلی بالا است :)
    ۳- مصرف حافظه
    ۴- در مورد سایت ها یا سیستم های خیلی خیلی بزرگ، شاید مشابه اطلاعات مردم ایران که شاید روزی چند میلیارد تراکنش داشته باشه، یا اطلاعات بانکی یا ... به نظرم تنها انتخاب مناسب اوراکل باشه :)
    ایمیل من
    سایت من

    عضویت در جامعه‌ی اهدای عضو

    Direct PGP key: http://tinyurl.com/66q5cy
    PGP key server: keyserver.ubuntu.com
    PGP name to search: omidmottaghi

  12. #12
    ممنون . نتیجه ی جدید !! : InnoDB فضای دیسک و مموری زیادی میخواد و همونطور که گفتی برای کارهای حتی متوسط هم لازم نیست (البته اگه احتیاجی به تراکنش نباشه) . تنظیماتشم نصبت به myisam پیچیده تره و ... . من تصمیم گرفتم فعلا فقط یکی از جدولامو innodb بزارم و بقیه رو myisam .

    یه سوالم دارم : در هرکدوم از مورد های زیر چه اتفاقی میفته (در حد شک داشتنه!)(MyISAM)
    1. چند درخواست INSERT یا UPDATE همزمان.
    2.چند SELECT همزمان !
    3.SELECT همزمان با INSERT یا UPDATE .

    یه چشمه ! از InnoDB در سایت MySQL (برای رفع خستگی :d)
    InnoDB is used in production at numerous large database sites requiring high performance.
    The famous Internet news site Slashdot.org runs on InnoDB. Mytrix, Inc. stores over 1TB of data in
    InnoDB, and another site handles an average load of 800 inserts/updates per second in InnoDB

  13. #13
    . آواتار oxygenws
    تاریخ عضویت
    دی 1382
    محل زندگی
    تهران/مشهد
    پست
    6,333
    با اطلاعاتی که من دارم و به طور پیشفرض:

    ۱- هر کوئری insert و update جدول رو قفل می کنه.
    ۲- مشکلی نیست.
    ۳- select انجام نمی شه تا کار اونها تموم بشن.

    ضمن اینکه میشه اولویت insert و update رو پایین آورد... راهنمای mysql رو در مورد این دستورات می تونی مطالعه کنی.
    ایمیل من
    سایت من

    عضویت در جامعه‌ی اهدای عضو

    Direct PGP key: http://tinyurl.com/66q5cy
    PGP key server: keyserver.ubuntu.com
    PGP name to search: omidmottaghi

  14. #14

    نقل قول: MySQL Storage Engines

    طبق تجربه من وقتی جدول ها از نوع innodb باشه وقتی سرور ریسیت میشه مقدار auto_increment 0 میشه. و باید حتما جداول optimize بشن حالا نمیدونم این از مشکل سرور هست یا واقعا همینطوریه

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

  1. Falcon Storage Engine
    نوشته شده توسط reza_rad در بخش MySQL
    پاسخ: 0
    آخرین پست: سه شنبه 01 خرداد 1386, 13:41 عصر
  2. Gnome Storage: A Database Filesystem
    نوشته شده توسط oxygenws در بخش توسعه‌ی لینوکس و نرم افزارهای آزاد
    پاسخ: 0
    آخرین پست: جمعه 17 شهریور 1385, 23:37 عصر

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

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