没有合适的资源?快使用搜索试试~ 我知道了~
首页MySQL性能调优与企业级架构详解
"《MySQL性能调优与架构设计》是一本全面讲解MySQL数据库管理和优化的专业书籍,分为基础篇、性能优化篇和架构设计篇。基础篇旨在为新用户奠定基础,介绍MySQL软件的基本概念、组成部分,如存储引擎、安全管理和备份恢复策略,让读者了解查询处理流程和各模块协作。 性能优化篇深入探讨了影响MySQL性能的关键因素,如Schema设计技巧、查询语句优化、SQL层和存储引擎层的优化技术。这部分内容详细剖析了不同存储引擎的锁定机制,帮助用户解决实际应用中的性能瓶颈问题。 架构设计篇则是本书的重点,主要关注如何构建一个高可用性和可扩展性极强的分布式企业级数据库集群。内容涵盖了设计原则,如Replication的使用、数据切分、缓存和搜索技术,以及NDB Cluster等高级解决方案。高可用性部分着重于双主复制(Dual Master)、DRBD(Distributed Replicated Block Device)、NDB Cluster等架构实现,同时讨论了系统监控和故障恢复策略。 这本书不仅适合初学者快速入门MySQL,也适合经验丰富的开发人员进行深入的性能调优和集群架构设计,是MySQL领域的重要参考资料。通过学习本书,读者将能够掌握如何有效地管理和提升MySQL数据库的性能,以及如何构建能够应对大规模并发和复杂业务需求的数据库系统。"
资源详情
资源推荐
![](https://csdnimg.cn/release/download_crawler_static/11016582/bg10.jpg)
图2-2
![](https://csdnimg.cn/release/download_crawler_static/11016582/bg11.jpg)
2
2
2
2.
.
.
.3
3
3
3MySQL
M ySQL
MySQL
MySQL自带工具使用介绍
自 带工具使用介绍
自带工具使用介绍
自带工具使用介绍
MySQL数据库不仅提供了数据库的服务器端应用程序, 同时还提供了大量的客户端工具
程序,如mysql,mysqladmin,mysqldump等等,都是大家所熟悉的。虽然有些人对这些工
具的功能都已经比较了解了, 但是真正能将这些工具程序物尽其用的人可能并不是太多, 或
者知道的不全,也可能并不完全了解其中的某种特性。所以在这里我也简单地做一个介绍。
1、mysql
相信在所有MySQL客户端工具中, 读者了解最多的就是mysql了, 用的最多的应该也非
他莫属。mysql的功能和Oracle的sqlplus一样,为用户提供一个命令行接口来操作管理
MySQL服务器。其基本的使用语法这里就不介绍了,大家只要运行一下“mysql--help”就
会得到如下相应的基本使用帮助信息:
sky@sky:~$mysql--help
mysqlVer14.14Distrib5.1.26-rc,forpc-linux-gnu(i686)usingEditLine
wrapper
Copyright(C)2000-2008MySQLAB
ThissoftwarecomeswithABSOLUTELYNOWARRANTY.Thisisfreesoftware,
andyouarewelcometomodifyandredistributeitundertheGPLlicense
Usage:mysql[OPTIONS][database]
-?,--helpDisplaythishelpandexit.
......
-e,--execute=nameExecutecommandandquit.(Disables--forceandhistory
file)
-E,--verticalPrinttheoutputofaquery(rows)vertically.
......
-H,--htmlProduceHTMLoutput.
-X,--xmlProduceXMLoutput
......
--prompt=nameSetthemysqlprompttothisvalue.
......
--tee=nameAppendeverythingintooutfile.Seeinteractivehelp(\h)
also.Doesnotworkinbatchmode.Disablewith
--disable-tee.Thisoptionisdisabledbydefault.
![](https://csdnimg.cn/release/download_crawler_static/11016582/bg12.jpg)
......
-U,--safe-updatesOnlyallowUPDATEandDELETEthatuseskeys.
--select_limit=#AutomaticlimitforSELECTwhenusing--safe-updates
--max_join_size=#Automaticlimitforrowsinajoinwhenusing
--safe-updates
......
--show-warningsShowwarningsaftereverystatement.
......
上面的内容仅仅只是输出的一部分, 省略去掉了大家最常用的一些参数 (因为大家应该
已经很熟悉了) ,留下了部分个人认为可能不是太经常用到,但是在有些情况下却能给我们
带来意料之外的惊喜的一些参数选项。
首先看看“-e,--execute=name”参数,这个参数是告诉mysql,我只要执行“-e”后
面的某个命令,而不是要通过mysql连接登录到MySQLServer上面。此参数在我们写一些
基本的MySQL检查和监控的脚本中非常有用,我个人就经常在脚本中使用到他。
如果在连接时候使用了 “-E,--vertical
”
参数, 登入之后的所有查询结果都将以纵列
显示,效果和我们在一条query之后以“\G
”
结尾一样,这个参数的使用场景可能不是特别
多。
“-H,--html
”与
“-X,--xml
”
这两个参数很有意思的, 在启用这两个参数之后, select
出来的所有结果都会按照“Html”与“Xml”格式来输出,在有些场合之下,比如希望Xml
或者Html文件格式导出某些报表文件的时候,是非常方便的。
“--prompt=name”参数对于做运维的人来说是一个非常重要的参数选项,其主要功能
是定制自己的mysql提示符的显示内容。 在默认情况下, 我们通过mysql登入到数据库之
后,
mysql的提示符只是一个很简单的内容”mysql>“,没有其他任何附加信息。非常幸运的是
mysql通过“--prompt=name”参数给我们提供了自定义提示信息的办法,可以通过配置显
示登入的主机地址,登录用户名,当前时间,当前数据库schema,MySQLServer的一些信
息等等。 我个人强烈建议将登录主机名, 登录用户名和所在的schema这三项加入提示内容
,
因为当大家手边管理的MySQL越来越多, 操作越来越频繁的时候, 非常容易因为操作的时候
没有太在意自己当前所处的环境而造成在错误的环境执行了错误的命令并造成严重后果的
情况。 如果我们在提示内容中加入了这几项之后, 至少可以更方便的提醒自己当前所处环
境,
以尽量减少犯错误的概率。
我个人的提示符定义:"\\u@\\h:\\d\\r:\\m:\\s>",显示效果:
“sky@localhost:test04:25:45>”
“--tee=name”参数也是对运维人员非常有用的参数选项,用来告诉mysql,将所有输
入和输出内容都记录进文件。 在我们一些较大维护变更的时候, 为了方便被查, 最好是将整
个操作过程的所有输入和输出内容都保存下来。有了 “--tee=name
”
参数,就再也不用通过
copy屏幕来保存操作过程了。
![](https://csdnimg.cn/release/download_crawler_static/11016582/bg13.jpg)
“-U,--safe-updates
”,
“--select_limit=#”和“--max_join_size=#”三个参数都
是出于性能相关考虑的参数。使用 “-U,--safe-updates
”
参数之后,将禁止所有不能使用
索引的update和delete
操作的请求,
“--select_limit=#”的使用前提是有“-U,--safe-
updates
”
参数, 功能是限制查询记录的条数,
“--max_join_size=#
”
也需要与 “-U,--safe-
updates”一起使用,限制参与join的最大记录数。
“--show-warnings”参数作用是在执行完每一条query之后都会自动执行一次“show
warnings
”
,显示出最后一次warning的内容。
上面仅仅介绍了部分不是太常使用但是很有特点的少数几个参数选项,实际上mysql
程序支持非常多的参数选项,有其自身的参数,也有提交给MySQLServer的。mysql的所
有参数选项都可以写在MySQLServer启动参数文件 (my.cnf
)的
[mysql]参数group
中,
还
有部分连接选项参数会从[client]参数group中读取, 这样很多参数就可以不用在每次执行
mysql的时候都手工输入,而由mysql程序自己自动从my.cnf文件load这些参数。
如果读者朋友希望对mysql其他参数选项或者mysql的其他更国有图有更深入的了解,
可以通过MySQL官方参考手册查阅, 也可以通过执行 “mysql--help
”
得到帮助信息之后通
过自行实验来做进一步的深刻认识。 当然如果您是一位基本能看懂c语言的朋友, 那么您完
全可以通过mysql程序的源代码来发现其更多有趣的内容。
2、mysqladmin
Usage:mysqladmin[OPTIONS]commandcommand...
mysqadmin, 顾名思义, 提供的功能都是与MySQL管理相关的各种功能。 如MySQLServer
状态检查, 各种统计信息的flush
, 创建
/删除数据库, 关闭MySQLServer
等等。
mysqladmin
所能做的事情,虽然大部分都可以通过mysql连接登录上MySQLServer之后来完成,但是
大部分通过mysqladmin来完成操作会更简单更方便。这里我将介绍一下自己经常使用到的
几个常用功能:
ping命令可以很容易检测MySQLServer是否还能正常提供服务
sky@sky:~#mysqladmin-usky-ppwd-hlocalhostping
mysqldisalive
status命令可以获取当前MySQLServer的几个基本的状态值:
sky@sky:~#mysqladmin-usky-ppwd-hlocalhoststatus
Uptime:20960Threads:1Questions:75Slowqueries:0Opens:15Flush
tables:1Opentables:9Queriespersecondavg:0.3
processlist获取当前数据库的连接线程信息:
sky@sky:~#mysqladmin-usky-ppwd-hlocalhostprocesslist
+----+------+-----------+----+---------+------+-------+------------------+
|Id|User|Host|db|Command|Time|State|Info|
![](https://csdnimg.cn/release/download_crawler_static/11016582/bg14.jpg)
+----+------+-----------+----+---------+------+-------+------------------+
|48|sky|localhost||Query|0||showprocesslist|
+----+------+-----------+----+---------+------+-------+------------------+
上面的这三个功能是我在自己的一些简单监控脚本中经常使用到的, 虽然得到的信息还
是比较有限, 但是对于完成一些比较基本的监控来说, 已经足够胜任了。 此外,还可以通过
mysqladmin来startslave和stopslave,kill某个连接到MySQLServer的线程等等。
3、mysqldump
Usage:mysqldump[OPTIONS]database[tables]
ORmysqldump[OPTIONS]--databases[OPTIONS]DB1[DB2DB3...]
ORmysqldump[OPTIONS]--all-databases[OPTIONS]
mysqldump这个工具我想大部分读者可能都比较熟悉了,其功能就是将MySQLServer
中的数据以SQL语句的形式从数据库中dump成文本文件。虽然mysqldump是做为MySQL的
一种逻辑备份工具为大家所认识, 但我个人觉得称他为SQL生成导出工具更合适一点, 因为
通过mysqldump所生成的文件,全部是SQL语句,包括数据库和表的创建语句。当然,通过
给mysqldump程序加 “-T
”
选项参数之后,可以生成非SQL形式的指定给是的文本文件。这
个功能实际上是调用了MySQL
中的
“select*intoOUTFILEfrom...
”
语句而实现。 也可
以通过 “-d,--no-data
”
仅仅生成结构创建的语句。 在声称SQL语句的时候,字符集设置这
一项也是比较关键的,建议每次执行mysqldump程序的时候都通过尽量做到“--default-
character-set=name”显式指定字符集内容,以防止以错误的字符集生成不可用的内容。
mysqldump所生成的SQL文件可以通过mysql工具执行。
4、mysqlimport
Usage:mysqlimport[OPTIONS]databasetextfile...
mysqlimport程序是一个将以特定格式存放的文本数据(如通过“select*into
OUTFILEfrom...”所生成的数据文件)导入到指定的MySQLServer中的工具程序,比如
将一个标准的csv文件导入到某指定数据库的指定表中。mysqlimport工具实际上也只是
“loaddatainfile”命令的一个包装实现。
5、mysqlbinlog
Usage:mysqlbinlog[OPTIONS]log-files
mysqlbinlog程序的主要功能就是分析MySQLServer所产生的二进制日志(也就是大
家所熟知的binlog) 。当我们希望通过之前备份的binlog做一些指定时间之类的恢复的时
候,mysqlbinlog就可以帮助我们找到恢复操作需要做哪些事情。通过mysqlbinlog,我们
可以解析出binlog中指定时间段或者指定日志起始和结束位置的内容解析成SQL语句,并
导出到指定的文件中,在解析过程中,还可以通过指定数据库名称来过滤输出内容。
6、mysqlcheck
Usage:mysqlcheck[OPTIONS]database[tables]
剩余302页未读,继续阅读
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://profile-avatar.csdnimg.cn/e20129f61367456f810dc8a0f206943e_csdn7400.jpg!1)
Mark马
- 粉丝: 1
- 资源: 4
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
最新资源
- 中国微型数字传声器:技术革新与市场前景
- 智能安防:基于Hi3515的嵌入式云台控制系统设计
- 手机电量低时辐射真增千倍?解析手机使用谣言
- 56F803型DSP驱动的高精度大功率超声波电源控制策略研究
- ARM与GPRS结合的远程监测系统设计
- GPS与RFID技术结合的智能巡检系统设计
- CPLD驱动的低功耗爆炸场温度测试系统设计
- 基于FPGA的智能驱动控制系统:可扩展设计与工业网络协议
- 基于ATmega128和CH374的嵌入式USB接口设计
- 基于AT89C52的温度补偿超声波测距仪:高精度设计与应用
- MSP430F448单片机在交流数字电压表中的应用
- 提升变频器应用效率的12项实用技巧
- STM32F103在数字电镀电源并联均流系统中的应用
- PSpice仿真下的升压开关电源设计:拓扑分析与CCM稳定性提升
- 轻巧高效:MSP430主导的低成本无线传感器网络节点设计
- FPGA在EDA/PLD中实现LVDS接口的应用解析
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)