MySQL源代码目录有哪些

技术MySQL源代码目录有哪些这篇文章主要介绍了MySQL源代码目录有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、源代码目录介绍:1、BUILD

本文主要介绍了MySQL源代码目录,具有一定的参考价值。有兴趣的朋友可以参考一下。希望你看完这篇文章后收获多多。让边肖带你去了解一下。

1、源代码目录介绍:

1、构建

BUILD目录是编译和安装脚本的目录,大部分都以compile-开头,其中的SETUP.sh脚本为C和C编译器设置了优化选项。

2、客户

客户端目录包括常用命令和客户端工具代码,这些源代码文件包括密码确认函数get_password.c、SSL连接可行性检查、MySQL客户端mysql.cc、mysqladmin工具和用于服务器操作的mysqladmin.c、用于显示数据库及其表和列的mysqlshow.c等。

3、存储

各种MySQL存储引擎代码都在这个目录下,包括cvs存储引擎(CVS目录)、InnoDB存储引擎、Federate等等。存储引擎是数据库系统的核心,它封装了数据库文件的操作,是决定数据库系统是否强大的最重要因素。Mysql实现了一个名为handler(sql/handler.h)的抽象接口层,定义了ha_open、ha_index_end、ha_create等接口函数。存储引擎需要实现这些接口,然后才能被系统使用。这个接口定义超级复杂,有900多行:-(,但是我们暂时只知道它是做什么的,所以没有必要去深究每一行代码。对于每个引擎的具体特点,我推荐大家看看mysql在线文档:

http://dev.mysql.com/doc/refman/5.1/en/storage-engines.html

您应该会看到以下目录:

* innodb的目录innobase是目前最流行的存储引擎。

* myisam,最早的Mysql存储引擎,在innodb出现之前是使用最广泛的引擎。

*堆,基于内存的存储引擎。

*联合,一个相对较新的存储引擎。

*例如,csv,可以作为您编写自己的存储引擎的参考,易于阅读。

4、mysys

Mysys代表MySQL系统。

Library是MySQL的库函数文件。库函数是预编译函数的集合,这些函数是根据可重用性原则编写的。它们通常由一组相互关联的函数组成,用于完成一项共同的任务。本质上,库是一种可执行的二进制形式,可以由操作系统加载到内存中执行。有125个。mysys目录中的c文件,并且随着版本的演变和新函数的加入,库函数也在不断增加。

包括用于快速排序的mf_qsort.c、用于临时文件管理的mf_tempfile.c、用于定义客户端编译中使用的字符集类型的charset-def.c、用于字符集相关操作(字符集加载、初始化等)的charset.c。).

Mysys是一个大杂烩,里面包含了各种函数库文件,包括文件打开、数据读写、内存分配、OS/2系统特殊优化、线程控制、权限控制、RaidTable、动态字符串处理、队列算法、网络传输协议、初始化函数、错误处理、平衡二叉树算法、符号连接处理、生成唯一临时文件名、哈希函数、排序算法、压缩传输协议等。

5、sql

Mysql主函数mysqld.cc包含在sql目录中(是的,这是主数据库程序MySQL所在的地方,大部分系统进程都发生在这里。),它还包括解析/实现各种SQL语句、线程、查询解析和查询优化器,以及存储引擎接口(您也可以看到sql_insert.cc,

Sql_update.cc、sql_select.cc等。分别实现相应的SQL命令。我们以后会经常提到这个目录中的文件)。在storage下的每个存储引擎目录中,都有各种存储引擎的实现代码,而在sql/directory中,则有一个处理接口处理程序。处理程序类中有很多虚函数,需要通过它的子类来实现。

在今天的MySQL 5.1中,综合文件hadler.cc和handler.h处理各种存储请求。各种sql语句的执行代码也可以在sql目录中找到,这类文件往往以SQL命名。诸如MySQL UNION和ROLLUP等操作被视为内部函数。

大概有以下几种和一些:

SQL解析器代码: sql_lex.cc,

SQL _ yacc.yy、SQL _ yacc.cc、SQL _ parse.cc等。实现了SQL语句的解析操作。

Handler '代码: handle.cc,

Handler.h,它定义了存储引擎的接口。

项目'代码:item_func.cc,

Item_create.cc在解析后定义了SQL的每个部分。

>SQL语句执行代码: sql_update.cc,
sql_insert.cc sql_select.cc, sql_show.cc, sql_load.cc,执行SQL对应的语句。当你要看"SELECT ..."的执行的时候,直接到sql_select.cc去看就OK了。  
辅助代码: net_serv.cc实现网络操作  
还有其他很多代码。

6、vio
    VIO意指Virtual I/O,主要用来处理各种网络协议的IO。Virtual I/O使得各种模块的网络协议能够无缝的调用I/O功能。MySQL网络子系统将调用这里的方法。
7、regex
    regex为MySQL提供执行正则匹配函数REGEXP时的支持。
8、dbug
    使用with-debug参数编译的MySQL会显示dbug输出,代码中的所有.c和.cc文件均可调用这个库。

2、安装目录介绍:

On Windows, the
default installation directory is C:\mysql, which has the
following subdirectories:

Directory

Contents of Directory

bin

Client programs and the mysqld server

data

Log files, databases

Docs

Documentation

examples

Example programs and scripts

include

Include (header) files

lib

Libraries

scripts

Utility scripts

share

Error message files

Installations
created from Linux RPM distributions result in files under the following system
directories:

Directory

Contents of Directory

/usr/bin

Client programs and scripts

/usr/sbin

The mysqld server

/var/lib/mysql

Log files, databases

/usr/share/doc/packages

Documentation

include/usr/include/mysql

Include (header) files

lib/usr/lib/mysql

Libraries

/usr/share/mysql

Error message and character set files

sql-bench/usr/share/sql-bench

Benchmarks

On Unix, a tar file binary distribution is installed by unpacking it at the
installation location you choose (typically/usr/local/mysql) and creates the
following directories in that location:

Directory

Contents of Directory

bin

Client programs and the mysqld server

data

Log files, databases

docs

Documentation, ChangeLog

include

Include (header) files

lib

Libraries

scripts

mysql_install_db

share/mysql

Error message files

sql-bench

Benchmarks

A source
distribution is installed after you configure and compile it. By default, the
installation step installs files under /usr/local, in the following
subdirectories:

Directory

Contents of Directory

bin

Client programs and scripts

include/mysql

Include (header) files

info

Documentation in Info format

lib/mysql

Libraries

libexec

The mysqld server

share/mysql

Error message files

sql-bench

Benchmarks and crash-me test

var

Databases and log files

感谢你能够认真阅读完这篇文章,希望小编分享的“MySQL源代码目录有哪些”这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/61877.html

(0)

相关推荐

  • 农村医保网上如何缴费,农村医疗保险网上怎么交

    技术农村医保网上如何缴费,农村医疗保险网上怎么交人登录市地税局网站后农村医保网上如何缴费,可通过“网上办税(费)厅”,进入“自助缴费”模块,采用“银税转账”或“网上银行”两种划款方式完成缴费。1.若使用“银税转账”方式,

    生活 2021年10月30日
  • java: MS Sql Server Connection

    技术java: MS Sql Server Connection java: MS Sql Server Connection/** 版权所有 2021 涂聚文有限公司* 许可信息查看:* 描述:*

    礼包 2021年12月18日
  • jquery如何修改tr的类

    技术jquery如何修改tr的类这篇文章主要介绍“jquery如何修改tr的类”,在日常操作中,相信很多人在jquery如何修改tr的类问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”jqu

    攻略 2021年11月19日
  • Spring在单值注入时如何按类型查找匹配的Bean

    技术Spring在单值注入时如何按类型查找匹配的BeanSpring在单值注入时如何按类型查找匹配的Bean,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。引

    攻略 2021年10月27日
  • 描写女子美貌的句子,形容女子气质智慧美貌的句子

    技术描写女子美貌的句子,形容女子气质智慧美貌的句子1、都说喜欢穿裙子的女人是很浪漫的描写女子美貌的句子,骨子里都是妩媚的,是温婉如水的。我不知道,我只知道我穿裙子是比穿裤子美丽的。只要是美丽,我就会喜欢。MM们,让我们的

    生活 2021年10月19日
  • ipad怎么隐藏应用,ipadair怎么隐藏应用

    技术ipad怎么隐藏应用,ipadair怎么隐藏应用有时ipad怎么隐藏应用,我们不喜欢小朋友们乱玩我们的iPhone或iPad程序,那么该怎么把这些程序隐藏起来?今天小编就来跟大家分享一下隐藏的方法。 具体如下:
    1

    生活 2021年10月22日