MySQL과 SQL Server의 차이점
저는 모든 데이터베이스 요구 사항 (직장 및 개인 프로젝트 모두)에 사용 하는 ASP.NET 개발자입니다 Microsoft SQL Server
.
개인 프로젝트 중 일부에 대해 LAMP 스택을 시험 해보고 있습니다.
사이의 주요 차이점은 무엇입니까 MySQL
와는 SQL Server
? 사용하는 저장 프로 시저 에서 일반적인 관행을 MySQL
?
스위치 사용에 도움이되는 조언이나 리소스가 있습니까?
둘 다 경험이있는 사람들에게 누락 된 기능이 MySQL
있습니까?
주의해야 할 사항 중 하나는 SQL Server와 MySQL이 SQL 구문을 구현하는 방식이 상당히 다르다는 것입니다.
예를 들어 top-n 섹션을 살펴보십시오. MySQL에서 :
SELECT age
FROM person
ORDER BY age ASC
LIMIT 1 OFFSET 2
SQL Server (T-SQL)에서 :
SELECT TOP 3 WITH TIES *
FROM person
ORDER BY age ASC
여기에 많은 의견이 실제 진술보다 종교적인 주장처럼 들립니다. 나는 MySQL과 MSSQL 모두에서 수년간 일해 왔으며 둘 다 좋은 제품입니다. 나는 주로 작업중 인 환경을 기반으로 MySQL을 선택합니다. 대부분의 오픈 소스 프로젝트는 MySQL을 사용하므로, 그러한 방향으로 나아가면 MySQL이 선택됩니다. .Net으로 무언가를 개발한다면 MSSQL을 선택할 것입니다. 왜냐하면 MSSQL이 훨씬 낫기 때문이 아니라 대부분의 사람들이 사용하는 것입니다. 저는 현재 MySQL 및 C #과 함께 ASP.NET을 사용하는 프로젝트에 있습니다. 완벽하게 작동합니다.
MySQL이 CTE (Common Table Expressions) / "with"문을 지원하지 않는다고 언급 한 사람은 아무도 없습니다. 꽤 성가신 차이입니다.
MySQL은 데이터베이스 손상 문제가있을 가능성이 높으며, 발생할 때 자동으로 수정하지는 않습니다. 버전 6.5 이후로 MSSQL을 사용해 왔으며 데이터베이스를 오프라인으로 만드는 데이터베이스 손상 문제를 기억하지 못합니다. 프로덕션 환경에서 MySQL로 작업 한 몇 번, 데이터베이스 손상 문제는 명령 줄에서 "손상된 인덱스를 수정하십시오"라는 마법을 실행할 때까지 전체 데이터베이스를 오프라인 상태로 만들었습니다.
내 경험상 MSSQL의 트랜잭션 및 저널링 시스템은 데이터베이스 손상없이 전원주기 나 하드웨어 오류를 포함하여 모든 것을 처리하며, 문제가 발생하면 자동으로 수정됩니다.
이것은 나의 경험이었고, 이것이 수정되었거나 우리가 잘못하고 있다는 것을 알게되어 기쁩니다.
http://dev.mysql.com/doc/refman/6.0/en/corrupted-myisam-tables.html
http://www.google.com/search?q=site%3Abugs.mysql.com+index+corruption
솔직히 MSSQL 대신 MySQL을 사용해야하는 이유는 없습니다. 이전에는 비용이 많이 들었지만 SQL Server 2005 Express는 무료이며 한 달에 5.00 달러 미만으로 SQL Server로 전체 호스팅을 제공하는 많은 웹 호스팅 회사가 있습니다.
MSSQL은 사용하기 쉽고 MySQL에는없는 많은 기능을 가지고 있습니다.
MySQL의 모든 것은 MSSQL보다 금속에 더 가까운 것으로 보입니다. 그리고 문서는 그것을 그렇게 취급합니다. 특히 최적화의 경우 다양한 상황에서 인덱스, 시스템 구성 및 옵티마이 저가 상호 작용하는 방식을 이해해야합니다.
"최적화 기"는 더 많은 파서입니다. MSSQL에서 쿼리 계획은 종종 놀랍습니다 (보통 좋지만 때로는 그렇지 않습니다). MySQL에서는 요청한대로 예상 한대로 수행합니다. 즉, 다양한 방법으로 자신을 깊이 이해해야합니다.
좋은 TRANSACTION 모델 (기본 MyISAM 엔진)을 기반으로 구축되지 않았습니다.
파일 시스템 설정이 문제입니다.
모든 데이터베이스 구성, 특히 다양한 캐시 크기가 문제입니다.
때로는 그것을 특별하고 영광스러운 isam으로 생각하는 것이 가장 좋습니다. 코드와 날짜는 여기에 많은 무게를 가지고 있지 않습니다. 그들은 당황하지 않고 그것을 말할 것입니다.
주의해야 할 주요 사항 중 하나는 MySQL 5.0 이전 버전에는 뷰, 트리거 및 저장 프로 시저가 없다는 것입니다.
이에 대한 자세한 내용은 MySQL 5.0 다운로드 페이지 에서 설명 합니다 .
@abdu
MySQL이 MSSQL보다 많은 것을 발견 한 주요 사실은 시간대 지원입니다. 일광 절약 시간을 고려하여 시간대를 멋지게 변경하는 기능은 환상적입니다.
이것을 비교하십시오 :
mysql> SELECT CONVERT_TZ('2008-04-01 12:00:00', 'UTC', 'America/Los_Angeles');
+-----------------------------------------------------------------+
| CONVERT_TZ('2008-04-01 12:00:00', 'UTC', 'America/Los_Angeles') |
+-----------------------------------------------------------------+
| 2008-04-01 05:00:00 |
+-----------------------------------------------------------------+
이 답변에 관련된 왜곡에 .
'사용하기 쉬운'댓글에 관해서는 요점은 다르다는 것입니다. 하나를 아는 경우 다른 것을 배우는 데 오버 헤드가있을 것입니다.
Both are DBMS's Product Sql server is an commercial application while MySql is an opensouces application.Both the product include similar feature,however sql server should be used for an enterprise solution ,while mysql might suit a smaller implementation.if you need feature like recovery,replication,granalar security and significant,you need sql server
MySql takes up less spaces on disk, and uses less memory and cpu than does sql server
Anyone have any good experience with a "port" of a database from SQL Server to MySQL?
This should be fairly painful! I switched versions of MySQL from 4.x to 5.x and various statements wouldn't work anymore as they used to. The query analyzer was "improved" so statements which previously were tuned for performance would not work anymore as expected.
The lesson learned from working with a 500GB MySQL database: It's a subtle topic and anything else but trivial!
@Cebjyre. The IDE whether Enterprise Manager or Management Studio is better than anything I have seen so far for MySQL. I say 'easier to use' because I can do many things in MSSQL where MySQL has no counterparts. In MySQL I have no idea how to tune the queries by simply looking at the query plan or looking at the statistics. The index tuning wizard in MSSQL takes most of the guess work on what indexes are missing or misplaced.
One shortcoming of MySQL is there's no max size for a database. The database would just increase in size till it fills up the disk. Imagine if this disk is sharing databases with other users and suddenly all of their queries are failing because their databases can't grow. I have reported this issue to MySQL long time ago. I don't think it's fixed yet.
Spending some time working with MySQL from the MSSQL to MySQL syntax POV I kept finding myself limited in what I could do.
There are bizzare limits on updating a table while refrencing the same table during an update.
Additionally UPDATE FROM does not work and last time I checked they don't support the Oracle MERGE INTO syntax either. This was a show stopper for me and I stopped thinking I would get anywhere with MySQL after that.
참고URL : https://stackoverflow.com/questions/10616/differences-between-mysql-and-sql-server
'Programming' 카테고리의 다른 글
Emacs에서 여러 쉘을 실행하는 방법 (0) | 2020.06.18 |
---|---|
Django Admin에서 동일한 모델에 대한 여러 ModelAdmins / views (0) | 2020.06.18 |
전체 파일 경로에서 파일 이름 찾기 (0) | 2020.06.18 |
Java 프로그래머가 변수 이름을 "clazz"로 지정하는 이유는 무엇입니까? (0) | 2020.06.18 |
Javascript 반복자를 배열로 변환 (0) | 2020.06.18 |