MySQL主要特点

内部和可移植性
  • 用C和C++编写的。
  • MySQL Server经过广泛测试,可以与多种不同的编译器兼容。
  • MySQL Server可以在许多不同的平台上运行。请参考https://www.mysql.com/support/supportedplatforms/database.html以获取详细信息。
  • 为了实现可移植性,MySQL Server可以使用CMake进行配置。
  • MySQL Server经过Purify(一款商业内存泄漏检测工具)和Valgrind(一款GPL工具)的测试
  • 采用多层独立模块的服务器设计。
  • MySQL Server被设计为完全多线程,并使用内核线程,以便在有多个可用的CPU时轻松利用它们。
  • MySQL Server提供事务性和非事务性存储引擎。
  • MySQL Server使用非常快速的B-tree磁盘表(MyISAM),并支持索引压缩功能。
  • MySQL Server的设计目标是相对容易地添加其他存储引擎。这在您想要为内部数据库提供SQL接口时非常有用。
  • MySQL Server使用非常快速的基于线程的内存分配系统。
  • MySQL Server使用优化的嵌套循环连接来执行非常快速的连接操作。
  • MySQL Server实现了基于内存的哈希表,用作临时表。
  • MySQL Server使用高度优化的类库来实现SQL函数,旨在尽可能提供更快的执行速度。通常,在查询初始化后几乎没有任何内存分配。
  • MySQL Server作为一个独立的程序提供,用于在客户端/服务器网络环境中使用。
数据类型 
  • MySQL Server提供了多种数据类型,包括有符号/无符号整数(1、2、3、4和8字节长)、FLOAT、DOUBLE、CHAR、VARCHAR、BINARY、VARBINARY、TEXT、BLOB、DATE、TIME、DATETIME、TIMESTAMP、YEAR、SET、ENUM以及OpenGIS空间类型。这些不同的数据类型允许在数据库中存储和处理各种不同类型的数据。
  • MySQL Server还提供了固定长度和可变长度的字符串类型。
语句和函数
  •  在查询的SELECT列表和WHERE子句中,完全支持运算符和函数。例如:
mysql> SELECT CONCAT(first_name, ' ', last_name)-> FROM citizen-> WHERE income/dependents > 10000 AND age > 30;
  •  完全支持SQL的GROUP BY和ORDER BY子句。支持分组函数(COUNT()、AVG()、STD()、SUM()、MAX()、MIN()和GROUP_CONCAT())。
  • 支持使用标准SQL和ODBC语法进行左外连接(LEFT OUTER JOIN)和右外连接(RIGHT OUTER JOIN)。
  • 支持根据标准SQL的要求,在表和列上使用别名。
  • 支持在执行DELETE、INSERT、REPLACE和UPDATE语句后返回受影响(改变)的行数,或通过在连接到服务器时设置标志来返回匹配的行数。
  • 支持MySQL特定的SHOW语句,用于检索关于数据库、存储引擎、表和索引的信息。还支持根据标准SQL实施的INFORMATION_SCHEMA数据库。通过SHOW语句和INFORMATION_SCHEMA数据库,可以方便地获取关于MySQL数据库和表结构的各种元数据信息。
  • MySQL Server支持使用EXPLAIN语句来展示查询优化器如何解析查询。
  • MySQL Server具有函数名称与表或列名称相互独立的特性。例如,ABS可以作为一个有效的列名。唯一的限制是在函数调用时,函数名称与紧随其后的 "(" 之间不允许有空格。这使得函数名称可以与表和列的命名不冲突,方便了查询和数据处理中函数的使用。
  • 在同一条语句中,可以引用不同数据库中的表。
 安全
  • MySQL Server提供了一个灵活且安全的权限和密码系统,可以进行主机基础的验证。
  • 连接到服务器时,通过对所有密码流量进行加密来确保密码的安全性。 
 可扩展性和限制
  • MySQL Server支持大型数据库。我们可以使用MySQL Server管理包含5000万条记录的数据库。我们也知道一些用户使用MySQL Server管理具有20万个表和约50亿行的数据库。
  • MySQL Server支持每个表最多64个索引。每个索引可以由1到16个列或列的部分组成。对于InnoDB表,索引的最大宽度要么是767字节,要么是3072字节,具体取决于配置。对于MyISAM表,索引的最大宽度为1000字节。对于CHAR、VARCHAR、BLOB或TEXT列类型,索引可以使用列的前缀来索引。
连接性
  •  客户端可以使用多种协议连接到MySQL服务器:
    • 客户端可以在任何平台上使用TCP/IP套接字进行连接。
    • 在Windows系统上,如果服务器启用了named_pipe系统变量,则客户端可以使用命名管道进行连接。如果通过 --protocol=memory 选项,Windows服务器还支持共享内存连接。
    • 在Unix系统上,客户端可以使用Unix域套接字文件进行连接。
  • MySQL客户端程序可以使用许多不同的编程语言编写。MySQL提供了用于C或C++编写的客户端库,或者任何支持C绑定的语言都可以使用该库进行开发。这使得开发人员可以根据自己偏好的编程语言来创建与MySQL服务器进行交互的客户端程序。
  • MySQL提供了用于C、C++、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl的API,使得可以使用许多不同的编程语言来编写MySQL客户端。有关详细信息,请参阅第29章"Connectors and APIs"。
  • MySQL提供了名为Connector/ODBC(也称为MyODBC)的接口,用于支持使用ODBC(开放数据库连接)连接的客户端程序与MySQL进行交互。例如,您可以使用MS Access连接到MySQL服务器。这个接口可以在Windows和Unix系统上运行。可获得Connector/ODBC的源代码。它支持所有ODBC 2.5函数以及其他许多功能。请参阅"MySQL Connector/ODBC开发人员指南"了解更多信息。
  • Connector/J接口为使用JDBC(Java数据库连接)连接的Java客户端程序提供MySQL支持。这个接口可以在Windows和Unix系统上运行。可以获取到Connector/J的源代码。请参阅"MySQL Connector/J 8.0开发人员指南"了解更多信息。
  • MySQL Connector/NET允许开发人员轻松创建需要与MySQL进行安全、高性能数据连接的.NET应用程序。它实现了所需的ADO.NET接口,并集成到支持ADO.NET的工具中。开发人员可以使用他们选择的.NET语言构建应用程序。MySQL Connector/NET是一个完全托管的ADO.NET驱动程序,使用100%纯C#编写。请参阅"MySQL Connector/NET开发人员指南"了解更多信息。
本地化
  • 服务器可以以多种语言向客户端提供错误消息。请参阅第10.12节"设置错误消息语言"。
  • MySQL对多种不同的字符集提供完整支持,包括latin1(cp1252)、german、big5、ujis、多个Unicode字符集等。例如,表名和列名中允许使用斯堪的纳维亚字符"å"、"ä"和"ö"。
  • 所有的数据都以选择的字符集保存。
  • 排序和比较是根据默认的字符集和排序规则进行的。可以在启动MySQL服务器时更改这些设置(参见第10.3.2节"服务器字符集和排序规则")。可以查看捷克排序代码来了解高级排序的示例。MySQL服务器支持许多不同的字符集,可以在编译时和运行时指定。
  • 服务器的时区可以动态更改,每个客户端都可以指定自己的时区。 
客户端和工具
  •  MySQL包括多个客户端和实用程序。这些包括命令行程序(如mysqldump和mysqladmin)和图形化程序(如MySQL Workbench)。
  • MySQL服务器内置了支持SQL语句来检查、优化和修复表的功能。这些语句可以通过mysqlcheck客户端从命令行中使用。MySQL还包括myisamchk,这是一个非常快速的用于在MyISAM表上执行这些操作的命令行实用程序。
  • MySQL程序可以使用--help或-?选项来获取在线帮助。这些选项会显示有关程序的使用方法、命令行参数和其他相关信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/224950.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

对BIOS进行简单快速的设置更改,就能启用安全引导来安装Windows 11

本文介绍如何在UEFI/BIOS中启用安全引导,以便继续安装Windows 11。 如何启用安全引导 启用安全引导最简单的方法是通过UEFI/BIOS进行。它通常被列为BIOS中的众多选项之一,因此你只需打开它即可启用它。 1、启动,或重新启动你的电脑或笔记本…

Domino万物可订阅

大家好,才是真的好。 如果你还不知道什么是RSS,从V站截图一份放到这里供大家参考: 其实,Domino上也可以很简单地发布RSS站点,以供内部或外部用户订阅。 前面其实我们说了不少关于Notes客户端的RSS订阅功能&#xff…

人工智能驱动的智慧城市:科技之光照亮未来城市发展

导言 人工智能在智慧城市建设中扮演着关键角色,通过智能化、自动化的手段,为城市提供高效、智能的管理和服务。本文将深入研究人工智能在智慧城市中的应用、创新技术以及对城市未来发展的引领作用。 智慧城市是利用先进的信息技术和大数据分析手…

代码随想录算法训练营第十六天| 104. 二叉树的最大深度、111. 二叉树的最小深度、222. 完全二叉树的节点个数

代码随想录算法训练营第十六天| 104. 二叉树的最大深度、111. 二叉树的最小深度、222. 完全二叉树的节点个数 题目 104.二叉树的最大深度 给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 # Defin…

nodejs+vue+微信小程序+python+PHP邮件分类系统的设计与实现-计算机毕业设计推荐

运用现代化信息技术手段加强电子邮件的管理,可以大大地降低管理工作量加快收集信息的速度,通过加强管理,保护电子邮件完整无缺,过滤垃圾邮件,节省办公时间。 论文先介绍当前邮件分类系统的现状,然后调研开发…

react函数组件中Hooks和ahooks的区别

Hooks 是 React 16.8 引入的一种新特性,它可以让我们在函数组件中使用状态和其他 React 特性。Hooks 提供了一系列的 API,例如 useState、useEffect 等,用于管理组件的状态和生命周期。具体可参考react hooks。 ahooks 是阿里巴巴开源的一个…

飞天使-docker知识点7-docker-compose与namespaces

文章目录 docker-composenamespace与cgroup编辑中 docker-compose # cat docker-compose.yml version: 3.8 services:nginx-server:image: nginxcontainer_name: nginx-web1 # network_mode: bridge #网络1,使用docker安装后的默认网桥expose:- 80- 443ports:-…

jenkins学习19 - pipline 构建项目生成 allure报告并发送邮箱

前言 个人其实一直的不太喜欢用邮箱发送报告,测试报告用邮件通知这都是五六年前的事情了,但有部分小伙伴依然执着于发邮件报告通知。 这里整理了下发邮箱通知的教程。 配置你的邮箱 配置邮箱这一步最繁琐,由于每个人使用的邮箱不一样&…

Qt容器QScrollArea小部件的滚动视图

​# QScrollArea 平台:linux、windows、mac皆可,Qt版本:Qt5.14.2 QScrollArea是Qt框架中用于提供可滚动视图区域的小部件。它通常被用来包含一个较大的内容区域,并且可以在其中嵌入其他小部件。下面是一些常用的QScrollArea函数: 1. `setWidget(QWidget *widget)`: 设置在…

机器学习支持向量机(SVM)

svm与logstic异同 svm支持向量机,因其英文名为support vector machine,故一般简称SVM,通俗来讲,它是一种二类分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,其学习策略便是间隔最大化&#x…

【置顶】 本博博文汇总

文章目录 前言音视频ijkplayer源码分析FFmpeg、音视频协议Andriod系统音视频框架C、C Android&Java源码分析、绘制、渲染Dalvik、Art虚拟机Java并发 计算机基础操作系统计算机网络设计模式、数据结构、算法 前言 23年底了,想来也工作十年,也一直在c…

Python 全栈体系【四阶】(五)

第四章 机器学习 三、数据预处理 1. 数据预处理的目的 去除无效数据、不规范数据、错误数据 补齐缺失值 对数据范围、量纲、格式、类型进行统一化处理,更容易进行后续计算 2. 预处理方法 2.1 标准化(均值移除) 让样本矩阵中的每一列的…

在Linux上配置全局HTTP代理的详细步骤

Linux简介 Linux是开源的一类Unix操作系统,广泛评价服务器和嵌入式系统。它具有稳定性高、安全性好、性能可靠等特点,因此在网络爬虫等领域也有广泛的应用。 Linux 爬虫使用场景 在网络爬虫应用中,Linux系统稳定性和灵活性而备受青睐。爬虫程…

51单片机控制1602LCD字符滚动三

51单片机控制1602LCD字符滚动三 1.概述 这篇文章介绍单片机控制1602LCD屏幕上的字符滚动显示 2.字符滚动 2.1.第一种方式 使用LCD内置指令设置整屏左移或者右移,在读入字符时每读一个字符都要有个延迟,否则会因为速度太快,看到屏幕上就是…

微服务保护--熔断降级

1.熔断降级介绍 熔断降级是解决雪崩问题的重要手段。其思路是由断路器统计服务调用的异常比例、慢请求比例,如果超出阈值则会熔断该服务。即拦截访问该服务的一切请求;而当服务恢复时,断路器会放行访问该服务的请求。 断路器控制熔断和放行…

3小时快速入门自动化测试 —— Selenium测试工具

自动化测试 自动化测试简单来说就是利用自动化测试工具和自动化测试脚本来完成指定的测试任务,测试启动过程无需人工参与,但自动化测试之前的准备工作需要人工手动配置好。它是一种将重复性、繁琐的测试任务交给计算机自动执行的方法,能够显…

ansible crontab任务管理 —— 筑梦之路

添加一个定时任务 # ansible-playbook.yml --- - name: Manage crontabhosts: your_target_hoststasks:- name: Add crontab entrycron:name: "rsync backup"minute: "0"hour: "2"job: "/path/to/your/backup_script.sh" your_target…

安恒明御安全网关 aaa_local_web_preview文件上传漏洞复现

0x01 产品简介 明御安全网关秉持安全可视、简单有效的理念,以资产为视角,构建全流程防御的下一代安全防护体系,并融合传统防火墙、入侵检测、入侵防御系统、防病毒网关、上网行为管控、VPN网关、威胁情报等安全模块于一体的智慧化安全网关。 0x02 漏洞概述 明御安全网关在…

【采坑分享】npm login/publish/whoami失败采坑,解决npmERR426、ETIMEDOUT、ECONNREFUSED等错误

目录 前言背景: 采坑之路: 1.修改https为http,问题还在 2.修改为淘宝镜像,问题还在 3.修改为官网地址,问题还在 4.升级node和npm,问题还在 5.猜想网络问题,问题解决 采坑总结&#xff1a…

HTTP 414错误:请求URI过长,如何避免

在Web开发中,HTTP状态码是用于表示Web服务器响应的各种状态。其中,HTTP 414错误表示请求URI过长,这意味着客户端发送的请求URL超过了服务器所能处理的长度限制。 当请求的URI过长时,服务器可能无法正确处理请求,从而导…