Mysql
MySQL is a relational database management system developed under a dual license: General Public License/Commercial License by Oracle Corporation and is considered the most popular open source database in the world., and one of the most popular in general along with Oracle and Microsoft SQL Server, all for web development environments.
MySQL was initially developed by MySQL AB (a company founded by David Axmark, Allan Larsson and Michael Widenius). MySQL AB was acquired by Sun Microsystems in 2008, and this in turn was purchased by Oracle Corporation in 2010, which had already owned Innobase Oy since 2005, a Finnish company that developed the InnoDB engine for MySQL.
Unlike projects like Apache, where the software is developed by a public community and the code copyright is held by the individual author, MySQL is sponsored by a private company, which owns the copyright to most of the software. code. This is what makes the previously mentioned dual licensing scheme possible. The database is distributed in several versions, one Community, distributed under the GNU General Public License, version 2, and several Enterprise versions, for those companies that want to incorporate it. in proprietary products. The Enterprise versions include additional products or services such as monitoring tools and official technical support. A fork called MariaDB was created in 2009 by some developers (including some original MySQL developers) who were unhappy with the development model and the fact that the same company controls both MySQL and Oracle Database products..
It is developed for the most part in ANSI C and C++. It is traditionally considered one of the four components of the LAMP and WAMP development stack.
MySQL is used by many large and popular websites, such as Wikipedia, Google (although not for search), Facebook, Twitter, Flickr, and YouTube.
Programming languages
There are several application programming interfaces that allow applications written in various programming languages to access MySQL databases, including C, C++, C#, Pascal, Delphi (via dbExpress), Eiffel, Smalltalk, Java (with a native implementation of the Java driver), Lisp, Perl, PHP, Python, Ruby, Gambas, REALbasic (Mac and Linux), (x)Harbour (Eagle1), FreeBASIC, and Tcl; each of these uses a specific application programming interface. There is also an ODBC interface, called MyODBC that allows any programming language that supports ODBC to communicate with MySQL databases. It can also be accessed from the SAP system, ABAP language.
Applications
MySQL is widely used in web applications, such as Joomla, Wordpress, Drupal or phpBB, on platforms (Linux/Windows-Apache-MySQL-PHP/Perl/Python), and by bug tracking tools such as Bugzilla. Its popularity as a web application is closely tied to PHP, which often appears in combination with MySQL.
MySQL is a very fast database read when using the non-transactional MyISAM engine, but it can cause integrity problems in high concurrency environments on modification. In web applications there is low concurrency in data modification and instead the environment is intensive in reading data, which makes MySQL ideal for this type of application. Regardless of the environment in which you will be using MySQL, it is important to monitor performance beforehand to detect and correct both SQL and programming errors.
User interfaces
Graphical User Interfaces
A graphical user interface (GUI) is a type of interface that allows users to interact with electronic devices or programs using graphical icons and visual indicators as secondary notation, as opposed to text-based interfaces, text labels, typed commands or text navigation. GUIs are easier to learn than command line interfaces (CLIs), which require you to type commands on the keyboard.
Free, third-party proprietary graphical (or 'front-end') management applications are available that integrate with MySQL and allow users to work with the structure and data of the database. visual form. Some well-known frontals are:
MySQL Workbench
MySQL Workbench is the official integrated environment for MySQL. It was developed by MySQL AB, and allows users to graphically manage MySQL databases and visually design database structures. MySQL Workbench replaces the previous software package, MySQL GUI Tools. Similar to other third-party packages, but still considered the authoritative front end of MySQL, MySQL Workbench allows users to manage database design and modeling, SQL development (replacing the MySQL Query Browser), and database administration. data (replacing MySQL Administrator).
MySQL Workbench is available in two editions, the usual free and open source Community Edition which can be downloaded from the MySQL website, and the proprietary Standard Edition which extends and enhances the Community Edition's feature set.
Admin
Adminer (formerly known as phpMinAdmin) is a free MySQL front-end for managing the content of MySQL databases (since version 2, it also works on PostgreSQL, Microsoft SQL Server, SQLite and Oracle databases). The manager is distributed under the Apache license (or GPL v2) in the form of a single PHP file (about 300 KiB in size), and is capable of managing multiple databases, with many CSS skins available. Its author is Jakub Vrána, who started developing this tool as a lightweight alternative to phpMyAdmin, in July 2007.
ClusterControl
ClusterControl is an end-to-end MySQL management system that provides the ability to deploy, monitor, manage, and scale MySQL instances from a single interface. It is developed by Severalnines.
The community version of ClusterControl is free to use and allows the user to deploy and monitor their MySQL instances. Advanced features like load balancing, backup and restore, failover, etc. they are part of a payment offer.
Database Workbench
Database Workbench is a software application for developing and managing multiple relational databases using SQL, with interoperability between different database systems, developed by Upscene Productions.
Because Databases Workbench supports multiple database systems, it can provide software developers with the same interface and development environment for these otherwise different database systems, and It also includes cross-database tools.
Database Workbench supports the following relational databases: Oracle Database, Microsoft SQL Server, SQL Anywhere, Firebird, NexusDB, InterBase, MySQL, and MariaDB. Database Workbench 5 works on 32-bit or 64-bit Windows platforms. Under Linux, FreeBSD or macOS Database Workbench can work with Wine.
DBeaver
DBeaver is a SQL client and database administration tool. DBeaver includes extended support for the following databases: MySQL and MariaDB, PostgreSQL, Oracle, DB2 (LUW), Exasol, SQL Server, Sybase, Firebird, Teradata, Vertica, Apache Phoenix, Netezza, Informix, Apache Derby, H2, SQLite and any other database that has a JDBC or ODBC driver. DBeaver is free and open source software distributed under the Apache 2.0 license. The source code is hosted on GitHub.
DBEdit
DBEdit is a database editor, which can connect to an Oracle, DB2, MySQL and any database that provides a JDBC driver. It works on Windows, Linux and Solaris. DBEdit is free and open source software and is distributed under the GNU General Public License. The source code is hosted on SourceForge.
HeidiSQL
HeidiSQL, formerly known as MySQL-Front, is a free and open source client, or frontend, for MySQL (and its forks MariaDB and Percona Server), Microsoft SQL Server, and PostgreSQL. HeidiSQL is developed by German programmer Ansgar Becker and a few other Delphi contributors. To manage databases with HeidiSQL, users must log in to a local or remote MySQL server with acceptable credentials, creating a session. Within this session users can manage MySQL databases within the connected MySQL server, disconnecting from the server when done. Its feature set is sufficient for the most common and advanced operations of databases, tables, and data records, but it remains in active development to move toward the full functionality expected in a MySQL Frontend.
LibreOffice Base
The LibreOffice foundation enables the creation and management of databases, the preparation of forms and reports that provide end users with easy access to data. Like Microsoft Access, it can be used as an interface to a variety of database systems, including Access (JET) databases, ODBC data sources, and MySQL or PostgreSQL.
Navicat
Navicat is a series of graphical database development and management software produced by PremiumSoft CyberTech Ltd. for MySQL, MariaDB, Oracle, SQLite, PostgreSQL and Microsoft SQL Server. It has an Explorer-like graphical user interface and supports multiple local and remote database connections. Its design is made to meet the needs of a variety of audiences, from database administrators and programmers to various businesses/companies serving customers and sharing information with partners.
Navicat is a cross-platform tool and works on Microsoft Windows, OS X and Linux platforms. At the time of purchase, users can select a language for the software from among eight available languages: English, French, German, Spanish, Japanese, Polish, Simplified Chinese, and Traditional Chinese.
OpenOffice.org
The OpenOffice.org database is freely available and can handle MySQL databases if the entire suite is installed.
PhpMyAdmin
phpMyAdmin is a free and open source tool written in PHP intended to handle MySQL administration using a web browser. You can perform various tasks such as create, modify or delete databases, tables, fields or rows; execute SQL statements or manage users and permissions. The software, which is available in 78 languages, is maintained by The phpMyAdmin Project.
You can import data from CSV and SQL, and transform data stored in any format using a set of predefined features, such as displaying BLOB data as images or download links.
SequelPro
Sequel Pro is a free and open source MacOS application for working with MySQL databases locally or remotely. It uses the freemium model, in which Free users are getting features from most basic services. An SQL table is needed to handle these requests. You can handle the new and "fun" UTF-8 features for the new unicode, as well as having multiple GB tables seamlessly.
SQLBuddy
SQLBuddy is an open source web-based application written in PHP, intended to handle MySQL and SQLite administration using a web browser. The project emphasizes ease of installation and a simple user interface.
SQLyog
SQLyog is a GUI tool available in both free and paid versions. Data manipulations (eg insert, update, and delete) can be performed from a spreadsheet-like interface. Its editor has syntax highlighting and several automatic formatting options. Both raw table data and the result set of a query can be manipulated. Its data search function uses a Google-like search syntax and is translated into SQL transparently to the user. It has a backup tool to perform unattended backups. Backups can be compressed and optionally stored as one file per table, as well as timestamped.
Toad for MySQL
Toad for MySQL is a software application from Dell Software that database developers, database administrators, and data analysts use to manage both relational and non-relational databases using SQL. Toad is compatible with many databases and environments. It works on all 32-bit/64-bit Windows platforms, including Microsoft Windows Server, Windows XP, Windows Vista, Windows 7 and 8 (32-bit or 64-bit). Dell Software has also released a Mac edition of Toad. Dell provides Toad in commercial and trial/free versions. The free version is available in the ToadWorld.com community.
Webmin
Webmin is a web-based system configuration tool for Unix-like systems, although recent versions can also be installed and run on Windows. With it it is possible to configure the internal elements of the operating system, such as users, disk quotas, services or configuration files, as well as modify and control open source applications, such as the Apache HTTP server, PHP or MySQL.
Webmin is heavily based on Perl, running as its own process and web server. It communicates by default over TCP port 10000 and can be configured to use SSL if OpenSSL is installed with the necessary Perl plug-ins.
It is built around modules, which interface with configuration files and the Webmin server. This makes it easy to add new functionality. Due to Webmin's modular design, it is possible for anyone interested in writing plugins for desktop setup.
Webmin also allows control of many machines through a single interface, or seamless login to other Webmin hosts on the same subnet or LAN.
Command line interface
A command line interface is a means of interacting with a computer program in which the user issues commands to the program by typing on successive lines of text (command lines). MySQL ships with many command line tools, of which the main interface is the mysql client.
The MySQL utilities are a set of utilities designed to perform common maintenance and administration tasks. Originally included as part of the MySQL Workbench, the utilities are a separate download available from Oracle.
The Percona Toolkit is a cross-platform toolkit for MySQL, developed in Perl. The Percona Toolkit can be used to test that replication is working properly, fix corrupted data, automate repetitive tasks, and speed up servers. Percona Toolkit is included in several Linux distributions like CentOS and Debian, and the packages are available for Fedora and Ubuntu as well. Percona Toolkit was originally developed as Maatkit, but as of late 2011, Maatkit is no longer developed.
The MySQL shell is a tool for interactive use and administration of the MySQL database. It supports JavaScript, Python or SQL modes and can be used for administration and access.
Application Programming Interfaces
Many programming languages with language-specific APIs include libraries for accessing MySQL databases. These include MySQL Connector/Net for integration with Microsoft's Visual Studio (most commonly used languages are C# and VB) and the JDBC driver for Java. In addition, an ODBC interface called MySQL Connector/ODBC allows additional programming languages that support the ODBC interface to communicate with a MySQL database, such as ASP or ColdFusion. The HTSQL - URL based query method is also shipped with a MySQL adapter, allowing direct interaction between a MySQL database and any web client via structured URLs. There are other drivers for languages like Python or Node.js.
Forks
A variety of MySQL forks exist, including the following.
Current
MariaDB
MariaDB is a community-developed fork of the MySQL relational database management system that is intended to remain free under the GNU GPL. Being a fork of a leading open source software system, it is notable for being led by the original developers of MySQL, who forked it due to concerns about its acquisition by Oracle. Contributors must share their copyrights with the MariaDB Foundation. MariaDB aims to maintain high compatibility with MySQL, ensuring "drop-in" with binary equivalence of the library and an exact match to MySQL APIs and commands. There are some documented differences and incompatibilities between the MySQL and MariaDB versions, however, and some tools for interacting with MySQL, such as the MySQL Workbench, are not fully compatible with MariaDB. It includes the XtraDB storage engine to replace InnoDB, as well as a new storage engine, Aria, which is intended to be both a transactional and non-transactional engine, perhaps even included in future releases. from MySQL.
Percona Server for MySQL
Percona Server for MySQL, a fork by Percona, aims to maintain close compatibility with official MySQL releases, while focusing on performance and increasing visibility into server operations. Also included in Percona Server for MySQL XtraDB, the Percona fork of the InnoDB storage engine. Percona freely includes a number of scalability, availability, security, and backup features that are only available in the commercial Enterprise edition of MySQL.
Abandoned
Drizzle
Drizzle was an open source and free software relational database management system (DBMS) that was built on the now-defunct MySQL DBMS 6.0 development branch. Like MySQL, Drizzle had a client/server architecture and uses SQL as its main command language. Drizzle was distributed under version 2 and 3 of the GNU General Public License (GPL) with parts including protocol handlers and message replication under the BSD license.
WebScaleSQL
WebScaleSQL was a software branch of MySQL 5.6, and was announced on March 27, 2014 by Facebook, Google, LinkedIn, and Twitter as a joint effort to provide a centralized development framework for extending MySQL with new features specific to their large-scale deployments, such as building large replicated databases running on server farms. Thus, WebScaleSQL opened a path towards deduplicating the efforts that each company had been putting into maintaining its own branch of MySQL, and towards joining more developers. By combining the efforts of these companies and incorporating various changes and new features into MySQL, WebScaleSQL was targeted to support the deployment of MySQL in large-scale environments. The project's source code is licensed under version 2 of the General Public License from GNU, and is hosted on GitHub.
MySQL Versions
The following chart provides a summary of various versions of MySQL and their current stages of development:
Specifications
Platforms
MySQL works on multiple platforms, including:
- AIX
- BSD
- FreeBSD
- HP-UX
- Kurisu OS
- GNU/Linux
- Mac OS X
- NetBSD
- OpenBSD
- OS/2 Warp
- QNX
- SGI IRIX
- Solaris
- Suns
- SCO OpenServer
- SCO UnixWare
- Tru64
- eBD
- Windows 95, Windows 98, Windows NT, Windows 2000, Windows XP, Windows Vista, Windows 7, Windows 8, Windows 10 and Windows Server (2000, 2003, 2008 and 2012).
- OpenVMS
Oracle provides the MySQL Community Edition source code and compiled versions for different operating systems, although MySQL performance is optimized for GNU/Linux systems, with minor performance differences between the different distributions.
Additional features
- Use GNU Automake, Autoconf, and Libtool for portability
- Using multi-sylls using kernel threads.
- Use b-tree disk tables for fast searches with index compression
- Hash tables in temporary memory
- The MySQL code is tested with Purify (a commercial lost memory detector) as well as with Valgrind, a GPL tool.
- Full support for operators and functions in select and where clauses.
- Full support for group by and order by clauses, support of grouping functions
- Security: offers a secure password system and privileges through host-based verification and password traffic is encrypted by connecting to a server.
- It supports a lot of data. MySQL Server has databases of up to 50 million records.
- Up to 64 indexes per table are allowed (32 before MySQL 4.1.2). Each index can consist of 1 to 16 columns or column parts. The maximum limit width is 1000 bytes (500 before MySQL 4.1.2).
- Customers connect to the MySQL server using TCP/IP sockets on any platform. In Windows systems you can connect using named pipes and Unix systems using socket Unix files.
- In MySQL 5.0, Windows clients and servers can be connected using shared memory.
- MySQL contains its own performance test package provided with the MySQL distribution source code.
Features
Initially, MySQL lacked elements considered essential in relational databases, such as referential integrity and transactions. Despite this, it attracted developers of web pages with dynamic content, precisely because of its simplicity.
Little by little, the elements that MySQL lacked are being incorporated both by internal developments and by free software developers. Among the features available in the latest versions we can highlight:
- Ample subset of SQL language. Some extensions are also included.
- Availability in many platforms and systems.
- Possibility of selection of storage mechanisms that offer different operating speeds, physical support, capacity, geographical distribution, transactions...
- Transactions and foreign keys.
- Safe connectivity.
- Replication.
- Search and index text fields.
MySQL is a relational database management system. A relational database archives data in separate tables instead of putting all the data in one big file. This allows for speed and flexibility. The tables are connected by defined relationships that make it possible to combine data from different tables on request.
MySQL is open source software. Open source means that it is possible for anyone to use and modify it. Anyone can download the MySQL source code and use it without paying. Any interested party can study the source code and adjust it to her needs. MySQL uses the GPL (GNU General Public License) to define what you can and cannot do with the software in different situations. If you don't conform to the GPL or need to embed MySQL code in commercial applications, you can purchase a licensed commercial version.
Distinctive features
The following features are implemented only by MySQL:
- It allows you to choose between multiple storage engines for each table. In MySQL 5.0 these should be added in compiling time, from MySQL 5.1 they can be dynamically added in execution time:
- There are natives such as MyISAM, Falcon, Merge, InnoDB, BDB, Memory/heap, MySQL Cluster, Federated, Archive, CSV, Blackhole and Example.
- Developed by partners as solidDB, NitroEDB, ScaleDB, TokuDB, Infobright (formerly Brighthouse), Kickfire, XtraDB, IBM DB2. InnoDB It was developed like this but now also belongs to Oracle.
- Developed by the community as memcache, httpd, PBXT and Revision.
- Transactions, gathering multiple transactions from several connections to increase the number of transactions per second.
Server Build Types
There are three types of MySQL server builds:
- Standard: Standard binaries MySQL are recommended for most users, and include the InnoDB storage engine.
- Max (It's not MaxDB, which is a cooperation with SAP): Binaries include additional features that have not been tested enough or are not normally necessary.
- MySQL-Debug: They are binary that have been compiled with extra depuration information. It should not be used in production systems because the debugging code can reduce performance.
Source code specifications
MySQL is written in a mixture of C and C++.
Project development
The development of MySQL is based on the work of developers hired by the company MySQL AB who are in charge of supporting business partners and users of the MySQL community and solving problems encountered by users. Users or members of the MySQL community can report bugs by reviewing the online manual that contains solutions to problems found; the history of changes; the bugs database containing reported and fixed bugs and on the MySQL mailing lists.
Through the mailing lists users can send questions and these will be answered by developers providing better support.
Other features of mailing lists
- Ads: report on new versions of MySQL and related programs.
- MySQL: main discussion list of MySQL and sql.
- Bugs: allows people to search and fix bugs.
- Internal topics: for people who work with the MySQL code. It is the forum to discuss the development of MySQL.
- MySQLdoc: for people who work in documentation.
- Performance tests: for people interested in performance topics not only from MySQL, but from other database engines.
- Packers: for discussions on MySQL packaging and distribution.
- Java: discussions about MySQL Server and Java.
Other mailing lists are: MyODBC, GUI Tools, Cluster, Dotnet, PlusPlus and Perl.
In addition to the mailing lists, there is IRC support from the MySQL community. In addition, there is support through forums grouped into categories such as: Migration, Using MySQL, MySQL Connectors, MySQL Technology, and Business.
Organizational/associative or decision-making structures
The MySQL projects are managed and sponsored by the MySQL AB company, which owns the copyright of the MySQL source code, its logo and trademark. MySQL, Inc. and MySQL GmbH are examples of subsidiaries of MySQL AB. They are established in the United States and Germany respectively. MySQL AB has more than 200 employees in more than 20 countries and works under the teleworking strategy.
In January 2008 Sun Microsystems announces its purchase. In April 2009 Oracle announced the purchase of Sun Microsystems.
Related Industry
The industry is based on the sale of software products and some services related to numerous companies that use these products.
MySQL AB classifies products as follows:
- MySQL Enterprise: includes MySQL Enterprise Server, MySQL network monitoring, MySQL consulting and production support services.
- MySQL Cluster
- MySQL Embedded Database.
- MySQL Drivers: for JDBC, ODBC and Net
- MySQL Tools: MySQL Administrator, MySQL Query Browser, and the MySQL Migration Toolkit.
- MaxDB: MaxDB is a certified open source database for SAP/R3.
This company's income from the sale of private licenses for its products and services amounts to US$12 million.
MySQL in numbers
- According to the manufacturer's figures, there would be more than six million copies of MySQL currently operating, exceeding the installed base of any other database tool.
- The traffic of the MySQL AB website exceeded the IBM site in 2004.
License
The MySQL GNU GPL license requires that any derivative product (application) be distributed under the same license. If a developer wants to incorporate MySQL into their product but wants to distribute it under a license other than the GNU GPL, they can purchase a MySQL commercial license that allows them to do just that.
Contenido relacionado
EXPSPACE
Circular particle accelerator
ISO/IEC 10646