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