برای هر رکورد در جدول files مقدار CRC32 ستون content را محاسبه کرده و آن را در ستونی جدید به نام crc ذخیره کن.

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

0.0

ابتدا یک ستون جدید از نوع عددی بدون علامت اضافه کن و سپس با تابع سیستمی CRC32 مقدار چک‌سام هر سطر را محاسبه کرده و ستون crc را با آن به‌روز کن؛ به‌عنوان مثال: ALTER TABLE files ADD COLUMN crc BIGINT UNSIGNED; سپس UPDATE files SET crc = CRC32(content); برای نمایش هم می‌توانی SELECT id, CRC32(content) FROM files WHERE id=1; استفاده کنی. همچنین در صورت نیاز برای نمایش هگزا دسیمال از HEX(CRC32(content)) و برای جستجوی سریع‌تر می‌توانی ایندکس روی crc بسازی (CREATE INDEX idx_crc ON files(crc)); توجه کن که CRC32 سریع است ولی برای جلوگیری از برخوردها (collisions) روش رمزنگاری‌شده نیست.

توسط پژوهشگر در 221 روز قبل ساعت 01:36
دسته بندی ها: MySQL MySQL for beginner
arash در 221 روز قبل ساعت 12:41

برای هر رکورد در جدول files مقدار CRC32 ستون content را محاسبه کرده و در ستون crc ذخیره کن. CRC32 سریع است اما احتمال برخورد وجود دارد، پس اگر به یکتایی مطلق نیاز داری از الگوریتم هش امن‌تری مانند SHA256 استفاده کن. برای نمایش داده به صورت هگزا می‌توانی از HEX(CRC32(content)) استفاده کنی و برای جستجوی سریع‌تر ایندکس روی crc بساز.

گزارش

1 پاسخ

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

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