سازنده / مالک | Microsoft | Oracle (نسخه Community تحت GPL و نسخه Enterprise تجاری) |
نسخه مرجع مورد مقایسه | SQL Server 2019 / 2022 (پرکاربرد) | MySQL 8.0 (پرکاربرد) |
پلتفرمهای پشتیبانی | Windows و Linux (نسخههای مدرن)، همچنین سرویسهای مدیریتشده در Azure | Cross‑platform: Linux، Windows، macOS (در عمل عمدتاً Linux/Windows) و سرویسهای مدیریتشده ابری |
مجوز و ادیشنها | ادیشنها: Express (رایگان با محدودیت)، Standard، Enterprise، Developer (رایگان برای توسعه). تجاری/پروپرایتری | Community (GPL، رایگان)، Enterprise (تجاری)، نسخههای توزیعشده (Percona, MariaDB متفاوتاند) |
موتور ذخیرهسازی | موتور داخلی یکپارچه RDBMS با rowstore؛ پشتیبانی از In-Memory OLTP (Hekaton) و Columnstore | معماری پلاگینشونده؛ پیشفرض InnoDB (ACID)، سایر موتورها: MyISAM، NDB، RocksDB و ... |
پیشفرض موتور | RDBMS داخلی (rowstore با پشتیبانی columnstore/in-memory) | InnoDB |
ACID | پشتیبانی کامل ACID (با کنترل تراکنش و log-based recovery) | InnoDB: ACID؛ سایر موتورها (مثلاً MyISAM) غیر-ACID |
MVCC / مدیریت نسخهگذاری | پشتیبانی از Row Versioning و Snapshot Isolation (قابل فعال/غیرفعال). Read Committed بهصورت پیشفرض (قفلمحور) مگر Read Committed Snapshot فعال شود. | InnoDB: MVCC پیادهسازی شده؛ پیشفرض Isolation Level = REPEATABLE READ (با gap locks و next-key locks) |
سطوح ایزولاسیون و پیشفرض | Serializable, Repeatable Read, Read Committed (پیشفرض)، Read Uncommitted, Snapshot | Serializable, Repeatable Read (پیشفرض), Read Committed, Read Uncommitted |
Autocommit | هر دستور بهطور پیشفرض در تراکنش خود اجرا میشود مگر BEGIN TRAN اجرا شود (autocommit-like) | autocommit = ON بهصورت پیشفرض (قابل تغییر) |
قفلها | قفل صفحه/صفحهبندی/ردیف؛ چند سطح قفل؛ escalation; lock hints; با قابلیت مدریت پیشرفته | بستگی به موتور: InnoDB قفل ردیفی و gap locks؛ MyISAM قفل جدول |
شاخصها (Indexes) | Clustered & Non‑clustered, Columnstore (clustered/nonclustered), Hash indexes (برای In‑memory)، XML/Spatial/Filtered indexes | B‑Tree (InnoDB)، Fulltext indexes (InnoDB)، Hash (در برخی موارد)، Spatial indexes؛ پشتیبانی از functional indexes (قبلاً via generated cols) |
جستجوی متن کامل (Full‑Text) | Full‑Text Search داخلی، پشتیبانی پیشرفته از زبانها، فیلترها، فیچرهای رتبهبندی | Full‑text در InnoDB از نسخههای اخیر پشتیبانی میشود؛ امکانات پایهای اما با تفاوت عملکرد و قابلیتها نسبت به MSSQL |
پشتیبانی از JSON | پشتیبانی از JSON بهصورت توابع و عملیات روی NVARCHAR (JSON stored as text); توابع JSON_VALUE, OPENJSON و ... | نوع داده JSON باینری native، توابع JSON گسترده، پشتیبانی از ایندکسگذاری روی عبارات JSON و عملکرد بهتر برای دادههای JSON |
پشتیبانی از XML | نوع XML و پشتیبانی قوی XQuery، XML indexes | تابعها و عملگرهای محدودی برای XML؛ پشتیبانی اجمالی و معمولاً کمتر از MSSQL |
پشتیبانی فضایی (Spatial) | geography & geometry با ایندکسگذاری فضایی و توابع گسترده | Geometry/Geography types، spatial indexes (در InnoDB با محدودیتهای MBR بسته به نسخه) |
جداول زمانی (Temporal / System‑versioned) | System‑versioned temporal tables داخلی و کامل با نگهداری تاریخچه | پیادهسازی کامل و یکپارچه temporal در MySQL هسته محدودتر است؛ معمولاً از راهکارهای trigger یا نسخههای توزیعشده/ابری استفاده میشود |
In‑Memory / OLTP حافظهای | Hekaton (In‑Memory OLTP) برای جدولهای حافظهای با native natively compiled objects | In‑memory خاص هسته ندارد (برخی توزیعها/افزونهها یا cacheهای خارجی برای این کار استفاده میشوند) |
ستونمحور (Columnstore) و بیگدیتا | پشتیبانی قوی از Columnstore indexes (برای BI/analytics)، ترکیب rowstore و columnstore | هسته MySQL columnstore ندارد؛ راهکارهای مجزا مانند MariaDB ColumnStore یا MySQL HeatWave (سرویس ابری Oracle) وجود دارند |
پارتیشنبندی | پارتیشنبندی جدول و ایندکس با استراتژیهای متنوع (range/list/hash) و مدیریت partition switching | پارتیشنبندی در سطح جدول (RANGE, LIST, HASH, KEY)، امکانات خوب اما با قوانین و محدودیتهای خاص |
شاردینگ / مقیاس افقی | مقیاسپذیری افقی محدود در هسته؛ راهکارهای Always On، distributed partitions، یا استفاده از شاردینگ در لایه اپلیکیشن و سرویسهای Azure | پشتیبانی شاردینگ توسط راهکارهای خارجی، InnoDB Cluster/Group Replication برای HA و Multi‑source replication برای برخی الگوها؛ NDB Cluster برای شاردینگ و مقیاس خطی (بعضی محدودیتها) |
Replication | Snapshot, Transactional, Merge replication (قابل پیکربندی پیچیده و غنی)، Always On AG replicated read‑scale | Asynchronous replication، Semi‑sync، Group Replication (سازمانیافته برای multi‑master)، GTID support، multi‑source replication |
High Availability / Failover | Always On Availability Groups (خواندن/نوشتن مجزا، failover)، Failover Cluster Instances با Windows Server FC، Log Shipping، Database Mirroring (منسوخشده) | InnoDB Cluster (Group Replication + MySQL Router)، NDB Cluster، replication+proxy-based solutions (ProxySQL, Orchestrator)؛ قابلیتهای HA قوی در اکوسیستم ولی پیادهسازی متفاوت |
پشتیبانگیری و بازیابی (Backup/Restore) | Full/Differential/Transaction Log backups، point‑in‑time recovery با لاگ تراکنش، backup to URL، native compressed/encrypted backups | Logical (mysqldump, mysqlpump)، Physical (Percona XtraBackup, mysqlbackup)، binary log برای PITR، قابلیت snapshots با LVM/ZFS |
Point‑in‑Time Recovery (PITR) | بله — با استفاده از transaction log (RESTORE WITH RECOVERY/STOPAT) | بله — با استفاده از binary log (binlog) و اعمال لاگ تا نقطه مورد نظر |
Change Data Capture / Change Tracking | CDC و Change Tracking داخلی و قابل پیکربندی (مناسب ETL و auditing) | بر پایه binlog؛ ابزارها و connectorهای متنوع (Debezium, Maxwell) و پلاگینهای ثالث؛ هیچ CDC داخلی سطح MSSQL در نسخه Community نیست |
شفافیت و قابلیتهای Audit | SQL Server Audit داخلی، Policy-based auditing، پیشرفته و قابل یکپارچهسازی با SIEM | MySQL Enterprise Audit plugin (نسخه Enterprise)؛ در Community از ابزارهای لاگ و پلاگینها استفاده میشود |
امنیت و رمزنگاری | TDE (Transparent Data Encryption) در ادیشنهای خاص، Always Encrypted، TLS/SSL، پشتیبانی از Azure AD و Kerberos، مدیریت کلیدها | Encryption at rest در InnoDB (tablespace encryption) در ادیشنهای Enterprise/پلاگینها؛ TLS/SSL برای ارتباطات؛ احراز هویت via caching_sha2_password، پلاگینهای PAM/LDAP |
احراز هویت و مجوزها | Windows Authentication (Integrated), SQL Authentication, Azure AD؛ نقشها (server & database roles)، Row‑Level Security | کاربر/رمز، نقشها (roles در 8.0)، پلاگینهای auth (PAM, LDAP), fine‑grained privileges اما RLS داخلی محدود |
Row‑Level Security (RLS) | پشتیبانی داخلی از RLS (policy‑based) | بدون RLS داخلی کامل در هسته؛ پیادهسازی معمولاً با view/trigger یا راهکارهای دیگر |
Stored Procedures / زبان برنامهنویسی | T‑SQL (غنی)، CLR integration (.NET assemblies) برای توابع و پراسسهای پیچیده | Stored procedures با SQL/PSM style، UDFها با C/C++ و پلاگینها؛ زبان محوری SQL است و افزونهها برای توسعه در C/C++ |
Triggers | AFTER, INSTEAD OF triggers؛ پشتیبانی از triggers در سطوح پیچیده | Row‑level triggers (BEFORE/AFTER)؛ محدودیتهایی در مقایسه با MSSQL از نظر نوع و رفتار |
Views / Indexed Views | Views، Indexed Views (Materialized-like) با مزایای performance در برخی سناریوها | Views و Derived/Materialized-like با استفاده از ابزارهای خارجی؛ native indexed materialized view ندارد مگر با استفاده از الگوهای خاص |
Window Functions / OLAP | پشتیبانی کامل از window functions، RANK, ROW_NUMBER, LEAD/LAG و ... | از MySQL 8.0 پشتیبانی از window functions بهطور کامل اضافه شده است |
CTE و Queries بازگشتی | Common Table Expressions (CTE)، recursive CTE پشتیبانی کامل | CTE و recursive CTE از MySQL 8.0 پشتیبانی میشود |
اجرای برنامههای کاربر/CLR | CLR Integration: امکان نوشتن توابع/پروسیجرها با .NET | UDF با C/C++ و پلاگینها؛ اجرای کدهای خارجی در هسته محدودتر |
امکانات مدیریت عملکرد | Query Store (ثبت plans)، Extended Events، Profiler (قدیمی)، Index Tuning Advisor، Resource Governor | Performance Schema، EXPLAIN، optimizer traces، ProxySQL و ابزارهای خارجی برای tuning؛ Query plan capture محدودتر نسبت به MSSQL |
آمار و بهینهساز (Optimizer) | بهینهساز cost‑based پیشرفته با آمار، histogram و امکان forced plan (plan guides) | Cost‑based optimizer بهبود یافته در 8.0 با آمار، histograms، optimizer hints؛ اما ویژگیهای enterprise-specific کمتر |
مانیتورینگ و ابزارهای مدیریتی | SQL Server Management Studio (SSMS)، Azure Data Studio، بسیاری ابزارهای مایکروسافت و تجاری | MySQL Workbench، ابزارهای خط فرمان، Percona Toolkit، phpMyAdmin، ابزارهای مدیریت توزیعشده |
اتصالها و درایورها | ODBC, JDBC, ADO.NET, Entity Framework و کانکتورهای رسمی و ثالث | ODBC, JDBC, Connector/C, Connector/Python, Connector/Node.js و کانکتورهای متعدد |
اکوسیستم و جامعه | اکوسیستم سازمانی بزرگ، مستندات جامع Microsoft، پشتیبانی رسمی و شرکتهای بزرگ سرویسدهنده | مجموعه بزرگی از ابزارهای متنباز، انجمن گسترده، پیادهسازیهای توزیعشده (Percona, MariaDB) و پشتیبانی تجاری توسط Oracle |
ابزارهای مهاجرت و همگامسازی | Data Migration Assistant، SSIS، ابزارهای ETL و مهاجرت رسمی | MySQL Shell, mysqlpump, Replication-based tools, Percona toolkit، ابزارهای ثالث مانند Debezium |
سرویسهای مدیریتشده ابری | Azure SQL Database, Managed Instance, SQL Server on Azure VMs؛ امکانات PaaS با HA/Geo‑replication | Amazon RDS/Aurora (برای MySQL-compatible)، Google Cloud SQL، Oracle MySQL HeatWave، RDS managed MySQL |
پلاگینها و extensibility | پشتیبانی از افزونهها و integration با اکوسیستم Microsoft (SSIS, SSRS, Azure) و CLR | معماری افزونهای برای storage engines، auth plugins، audit plugin و UDFs |
محدودیتهای شناختهشده / نقطه قوت مقایسهای | قویتر در امکانات سازمانی، امنیتی و BI (columnstore, query store, advanced HA)؛ پیچیدهتر و تجاریتر | سبکتر، انعطافپذیر، اکوسیستم متنباز قوی، مناسب برای وب/Cloud و ترکیب با راهکارهای متنباز؛ برخی امکانات enterprise در نسخه تجاری است |
مستندات و پشتیبانی تجاری | پشتیبانی رسمی Microsoft، SLAs، کانالهای enterprise و مستندات جامع | پشتیبانی Oracle برای نسخه Enterprise، جامعه وسیع و شرکتهای ثالث خدمات پشتیبانی (Percona، MariaDB Corp.) |
موارد رایج استفاده | کاربران سازمانی، OLTP با نیازهای امنیتی/قابلیت اطمینان بالا، BI و Data Warehouse با columnstore | اپلیکیشنهای وب، سرویسهای cloud-native، workloads انعطافپذیر، پروژههای متن‑باز و شرکتهایی که نیاز به مقیاس با هزینه کمتر دارند |
خلاصه فنی | RDBMS سازمانی با امکانات کامل امنیتی، HA، BI و ابزارهای مدیریتی؛ مناسب سازمانهای enterprise | سیستم دیتابیس متن‑باز با موتور InnoDB قدرتمند، مقیاسپذیری و اکوسیستم گسترده؛ مناسب وب/Cloud و پروژههای متن‑باز |