Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

ฟีเจอร์ที่ถูกลบใน MySQL 8.0: สิ่งที่ต้องย้าย

ฟีเจอร์ที่ถูกลบ (Removed Features) ใน MySQL 8.0

1. InnoDB: innodb_locks_unsafe_for_binlog

  • System Variable ถูกลบ
  • ทางเลือก: ใช้ Isolation Level READ COMMITTED แทน

2. INFORMATION_SCHEMA Views (InnoDB)

  • View เก่าเปลี่ยนชื่อ/โครงสร้างใน 8.0.3+
  • ต้องอัปเดต Script ที่อ้างอิง View เหล่านี้

3. Account Management: GRANT สร้าง User

  • GRANT ... TO 'user'@'host' ไม่สร้าง User ใหม่ได้อีก
  • ใช้ CREATE USER 'user'@'host' IDENTIFIED BY 'password' แทน
  • จากนั้นค่อย GRANT privileges ON db.* TO 'user'@'host'

4. Query Cache

  • Query Cache ถูกลบสมบูรณ์ (Deprecated ใน 5.7, Removed ใน 8.0)
  • รายการเกี่ยวกับ Query Cache: query_cache_type, query_cache_size, Qcache_* Status Variables — ทั้งหมดไม่มีผล/ถูกลบ
  • ทางเลือก: ใช้ Application-Level Cache (Redis, Memcached) หรือ ProxySQL

5. Data Dictionary: --ignore-db-dir

  • Data Dictionary ใหม่จัดการ Metadata เอง — ไม่สแกน Directory
  • --ignore-db-dir และ ignore_db_dirs ถูกลบ

6. Transaction Variables: tx_isolation, tx_read_only

  • ถูกลบ → ใช้ transaction_isolation และ transaction_read_only แทน

7. Authentication: secure_auth, multi_range_count

  • System Variables และ Client Options ถูกลบ
  • MySQL 8.0 ใช้ caching_sha2_password เป็น Default

8. Logging: log_warnings

  • log_warnings และ --log-warnings ถูกลบ
  • ใช้ log_error_verbosity แทน (ค่า 1=Errors, 2=Warnings, 3=Notes)

9. NULL Literal: \N

  • Parser ไม่จัดว่า \N = NULL ใน SQL Statements อีกต่อไป
  • ต้องใช้ NULL ตรงๆ

10. PROCEDURE ANALYSE()

  • Syntax ถูกลบ
  • ทางเลือก: ใช้ ANALYZE TABLE หรือ EXPLAIN ANALYZE

11. --temp-pool Server Option

  • ถูกลบ (เกี่ยวกับ Temporary File Handling)

12. ignore_builtin_innodb

  • System Variable ถูกลบ (InnoDB เป็น Built-in แล้ว)

13. resolveip Utility

  • ถูกลบ → ใช้ nslookup, host, dig แทน

14. DTrace Support

  • ถูกลบ

15. JSON_APPEND()

  • ถูกลบ → ใช้ JSON_ARRAY_APPEND() แทน

Checklist ก่อน Upgrade ไป 8.0

  1. ตรวจสอบ Application ใช้ GRANT สร้าง User → เปลี่ยนเป็น CREATE USER
  2. ตรวจสอบ Query Cache Settings → ลบออกจาก my.cnf
  3. ตรวจสอบ Script ใช้ INFORMATION_SCHEMA InnoDB Views เก่า → อัปเดต
  4. ตรวจสอบ tx_isolation, tx_read_only → เปลี่ยนชื่อ
  5. ตรวจสอบ \N ใน SQL → เปลี่ยนเป็น NULL
  6. ตรวจสอบ JSON_APPEND() → เปลี่ยนเป็น JSON_ARRAY_APPEND()
  7. Test Application บน Staging ก่อน Production