عند إنشاء جدول في MySQL، يجب تحديد طول عمود نوع VARCHAR بشكل واضح. ومع ذلك، بالنسبة لنوع TEXT، لا يلزم تحديد الطول. إذن ما هو الفرق بين VARCHAR و TEXT؟
TEXT
VARCHAR(M) ] &&&]
الحد الأقصى لطول الأحرف M المتغيرةتحرير:
إذا كان النص المراد تخزينه في قاعدة البيانات أطول من 65535 حرفًا، فيجب عليك تحديد MEDIUMTEXT أو LONGTEXT، ولكن كن حذرًا: الحد الأقصى لطول السلسلة المخزنة هو 16 ميجا بايت للنص المتوسط و4 جيجا بايت للنص الطويل. إذا كنت تستخدم LONGTEXT وتحصل على البيانات من خلال PHP (على الأقل إذا كنت تستخدم mysqli ولا تستخدم وظيفة store_result)، فقد تحصل على خطأ في تخصيص الذاكرة لأن PHP ستحاول تخصيص 4 جيجابايت من الذاكرة للتأكد من أن السلسلة بأكملها يمكن يتم تخزينها مؤقتا. يمكن أن يحدث هذا بلغات أخرى إلى جانب PHP أيضًا.ومع ذلك، يجب عليكدائما
التحقق من الإدخال قبل تخزين البيانات في قاعدة البيانات(هل هي طويلة جدًا؟ هل تحتوي على تعليمات برمجية غريبة؟). يرجى ملاحظة: بالنسبة لكلا النوعين، تعتمد مساحة القرص المطلوبة فقط على طول السلسلة المخزنة، وليس على الحد الأقصى للطول. على سبيل المثال، إذا كنت تستخدم مجموعة الأحرف latin1 وقمت بتخزين النص "اختبار" في VARCHAR(30) وVARCHAR(100) وTINYTEXT، فسوف يتطلب الأمر دائمًا 5 بايت (بايت واحد لتخزين طول السلسلة، وكل حرف بايت واحد) . إذا قمت بتخزين نفس النص في عمود VARCHAR(2000) أو TEXT، فسوف يتطلب أيضًا نفس المساحة، ولكن في هذه الحالة سوف يستغرق 6 بايت (2 بايت لتخزين طول السلسلة، كلمة واحدة لكل حرف فيستيفال). راجع الوثائق لمزيد من المعلومات.
أخيرًا، أود أن أضيف أن كلا من TEXT وVARCHAR هما نوعان من البيانات متغيرة الطول، لذلك من المرجح أن يقللا من عدد المسافات الفارغة اللازمة لتخزين البيانات
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3