با استفاده از تابع CRC32 در MySQL، یک ستون جدید در جدول users اضافه کنید که مقدار checksum برای ستون email را محاسبه و ذخیره کند و سپس برای ستون جدید ایندکس ایجاد نمایید.

2.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:24

0.0

ابتدا با ALTER TABLE یک ستون از نوع INT UNSIGNED برای ذخیره مقدار CRC32 اضافه کنید، سپس با یک عبارت UPDATE مقدار CRC32(email) را در آن ستون قرار دهید و در نهایت با CREATE INDEX یا ALTER TABLE ایندکس مناسب روی آن ستون بسازید. تابع CRC32 در MySQL مقدار عددی 32 بیتی برمی‌گرداند و برای مقایسه سریع و جستجو مناسب است، اما ممکن است برخورد (collision) رخ دهد؛ در کاربردهای حساس به صحت کامل داده‌ها از روش‌های قوی‌تر بهره ببرید.

توسط پژوهشگر در 221 روز قبل ساعت 01:24
دسته بندی ها: MySQL MySQL for beginner
arman در 221 روز قبل ساعت 13:23

برای اضافه کردن ستون، از ALTER TABLE یک ستون جدید از نوع INT UNSIGNED به نام email_crc به جدول users اضافه کنید. سپس با UPDATE مقدار CRC32(email) را در آن ستون ذخیره کنید. برای دسترسی سریع‌تر و جستجوی کارآمد، روی این ستون ایندکس ایجاد کنید. توجه کنید CRC32 احتمال برخورد دارد؛ در کاربردهای حساس به صحت کامل داده‌ها بهتر است از hashing قوی‌تری مانند SHA-256 استفاده کنید یا از ترکیب چند کلید بهره بگیرید.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری