Current location - Recipe Complete Network - Catering industry - What's the difference between SQL Server and Oracle and MySQL?
What's the difference between SQL Server and Oracle and MySQL?
1. If you want to explain the difference between the three, you should start with history.

Oracle Bone Inscriptions: Oracle Bone Inscriptions, a legendary company, has a legendary boss, Larry Ellision. Ellison, 32, accomplished nothing. He went to three universities, didn't get a degree, changed more than a dozen companies, and his wife left him. When I started my business, it was only $65,438+0,200, but it doubled the annual sales of Oracle Bone Inscriptions in 65,438+02.

Oracle was founded in 1977, and its early theoretical basis came from a paper by IBM, Data Relation Model of Large Shared Data Bank 1. Author CODD selects five operations in relational algebra, and based on this, constructs a new data storage model. Based on this model, Oracle has become a very typical relational database. So it has become rigorous, safe, high-speed, stable and more and more huge.

Because of its early birth, rigorous structure, high availability and high performance, it has been widely used in traditional database applications. Large companies in finance, communication, energy, transportation, retail, manufacturing and other industries basically use Oracle. In earlier years, almost 65,438+000% of the Fortune 500 enterprises were Oracle users.

MySQL: The original core idea of MySQL :MySQL is mainly open source and easy to use. Its development can be traced back to 1985, and the first internal distribution version was born in 1995. By 1998, MySQL has been able to support 10 operating system, including win platform. But there are still many problems, such as not supporting transaction operations, subqueries, foreign keys, stored procedures and views. The following figure shows the database market share as of 2006:

As can be seen from the figure, MySQL actually broke out in 0 1 and 2002, especially in the 4.0 Beta version released in 2002. InnoDB is officially selected as the default engine, which greatly improves the transaction processing ability and data caching ability. In the same year, version 4. 1 began to support subqueries, and MySQL finally turned into a mature relational database system. Version 5.0 in 2005 added functions such as stored procedures, server cursors, triggers, query optimization and distributed transactions, but it was copied by Oracle in the same year and InnoDB was incorporated by Oracle. MySQL was acquired by Sun in 2008, and Oracle Bone Inscriptions acquired Sun and MySQL in 2009.

Due to the early positioning of MySQL, its main application scenario is Internet development. Basically, the outbreak of the Internet has made MySQL, and the LAMP architecture is popular all over the world. However, because MySQL is more lightweight and easy to use, and there is no early thing operation and complex query optimization, it has little share in traditional database application scenarios.

SQL Server: When it comes to SQL Server, people usually only think of Microsoft SQL Server, not Sybase SQL Server. SQL Server was originally stopped by Microsoft, Sybase and Ashton-Tate, and was developed for IBM's OS/2 operating system (again). With the failure of the OS/2 project, everyone went their separate ways. Microsoft naturally turned to its own win operating system as part of the windows NT software solution. Sybase, on the other hand, focuses on database development in the direction of Linux/Unix.

MS SQL Server is mainly for small and medium-sized enterprises. Its greatest advantage lies in integrating various products and resources of MS Company, providing powerful visual interface and highly integrated management and development tools, and making great achievements in rapidly building business intelligence (BI). MS SQL Server is an important part of MS company's software integration scheme, and it has also made great contributions to the popularization of WIN system in enterprise applications.

2. Typical application scenarios

There is no strict definition of "large database", some say it is based on data volume, and some say it is based on recovery time. If the database application scenario is integrated, large-scale database applications have the following characteristics: massive data and high throughput; Complex logic, high computation and high availability. From this point of view, Oracle and DB2 are typical large databases, and Sybase SQL Server is also considered. The application scenarios of the first three databases are described as follows.

Oracle Bone Inscriptions Company. The application of Oracle is mainly in the data-based business of traditional industries, such as banking and finance, which requires high availability, robustness, security and real-time; Retail, logistics and other businesses with high requirements for mass data storage and analysis. In addition, high-tech manufacturing industries such as chip factories are basically inseparable from Oracle Bone Inscriptions; ; E-commerce also has many users, such as JD.COM (planning to go to Oracle Bone Inscriptions) and Alibaba (planning to go to Oracle Bone Inscriptions). Moreover, because of Oracle's strong support for complex calculation and statistical analysis, it has been more and more used in Internet data analysis and data mining. A typical scenario goes like this:

In the data center of a telecom (non-domestic) branch, there are four large Oracle Sun servers with Solaris operating system and Oracle installed to provide computing services, three Sun storage disk arrays to provide Oracle data storage, 12 IBM minicomputers, an Oracle database cloud server and a 500T tape drive to store historical data. San is connected to intranet, and Tuxedo middleware is used to ensure scalability and lossless migration. Establish Oracle database supporting high concurrency, use OLTP system to process and operate massive data in real time, establish Oracle data warehouse with high calculation, use OLAP system to analyze income data and provide automatic reports. The total budget is about $7.5 million.

MySQL .MySQL was basically born on the Internet and is longer than the Internet. Its application examples are mostly concentrated in the direction of the Internet. MySQL's high concurrent access ability is not worse than that of a large database, and it is cheap and easy to install and use, so it is deeply loved by internet companies. Moreover, due to the open source characteristics of MySQL, for some applications with special requirements for databases, directional optimization can be achieved by modifying the code, such as Internet services such as SNS and LBS. Typical application scenarios are:

An internet company, with only a few PCs at the beginning, quickly built a website framework through LAMP architecture. With the expansion of business and market, it has rapidly developed into a medium-sized website with six Dell minicomputers. Now it has taken three years to become the largest website in the vertical field, planning a data center and 40 Dell rack servers with a total budget of $200,000.

The advantages and disadvantages of products in MS SQL Server .windows ecosystem are very obvious. The advantage is high integration, and Microsoft also provides a complete set of software solutions. Basically, a win system will work together after installation. Therefore, small and medium-sized enterprises that are not so short of money but lack IT talents will prefer MS SQL Server. Such as self-built ERP system, business intelligence, vertical retailers, restaurants, institutions and so on.

1996, Bill Gates personally got Daniel Anders from Borland and repaired the C# language. Microsoft took over http://ASP.NET in 2002. Mature. NET and Silverlight technologies have won some Internet markets for MS SQL Server, among which MySpace, once the largest social networking site in the world, has a very representative development process and can be regarded as a special case. At its peak, it had more than 65.438+0.5 billion registered users, with a monthly visit of 40 billion. It should be regarded as the largest data application supported by MS SQL Server.

Architecture. In fact, the difference in implementation is mainly the difference in architecture. It is the architecture that leads to the difference in interpretation, optimization and efficiency of the same SQL in the execution process. This is just a rough description, so I won't elaborate:

Oracle: Data files include control files, data files, redo log files, parameter files, archive files and password files. This is divided according to file function lines, and all files are binary coded files, which greatly improves the efficiency of database algorithm. Because of the unity of Oracle file management, you can specify a unified parsing and optimization standard during SQL execution:

RBO (rule-based optimizer), CBO (cost-based optimizer)

Through the choice of optimizer and invincible prompt rules, SQL optimization is given great freedom, and CPU, memory and IO resources are optimized in all directions.

MySQL: One of the biggest features is the free choice of storage engines. Each table is a file, and you can choose the appropriate storage engine. Common engines are InnoDB, MyISAM, NDBCluster, etc. However, due to this open plug-in storage engine, for example, a loose coupling relationship between the database and the engine is needed. As a result, the consistency of documents is greatly reduced. There are some inevitable bottlenecks in SQL execution optimization. It is weak in multi-table association, sub-query optimization and statistical function, and only supports very simple hints.

SQL Server: The data architecture is basically vertically divided into: protocol layer, relational engine, storage engine and SQLOS. SQL execution is a layer-by-layer parsing process, in which the optimizer in the relational engine is based on cost (CBO), and its working process is very similar to that of Oracle. In addition to fees, it also supports a variety of tips, including: connection tips, query tips, and form tips.