符合中小企业对网站设计、功能常规化式的企业展示型网站建设
本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...
商城网站建设因基本功能的需求不同费用上面也有很大的差别...
手机微信网站开发、微信官网、微信商城网站...
推荐一个讲解MySQL的好书-- MySQL是怎样运行的 ,作者是小孩子4919,这是目前为止笔者读过的MySQL方面最好的书.
长顺网站建设公司创新互联,长顺网站设计制作,有大型网站制作公司丰富经验。已为长顺1000多家提供企业网站建设服务。企业网站搭建\外贸网站制作要多少钱,请找那个售后服务好的长顺做网站的公司定做!
笔者之前翻看过(MySQL技术内幕:InnoDB存储引擎)和(高性能MySQL),前者对InnoDB的技术要点讲解的很深.后者则是流水账式的介绍MySQL的各个模块. 彼时笔者的背景知识极为有限:
所以两者都不适合.笔者需要的是这样的一本书
很幸运,笔者发现了 MySQL是怎么运行的 ,它达成了上述需求的90%.如果你跟笔者有类似的问题,那么读下这本书吧!
推荐大家重点阅读下面章节
从此跟乱码say goodbye
了解记录在内存中的结构,B+树的演变由来,以及为什么要使用索引--没有索引就要扫全表呀!
缓冲池提高了性能,也带来了问题.
做完的事情说什么也不能丢失.
第一次听说脏写和Read View.看完之后才知道事务隔离级别的实现差异.
祝大家有一个愉快的阅读体验~
《MySQL是怎样运行的:从根儿上理解 MySQL》是一本MySQL的底层运行原理的书。关于底层运行原理4个字怎么理解呢,我的理解是专注于介绍 MySQL 的 innoDB的底层存储细节,并以此为基础延伸到分析MySQL 实际应用中的特性。
相比极客时间里面的《MySQL 实战45讲》,我觉得这本书更像电视剧《一代宗师》里面讲到的里子而非面子,更聚焦于事情的本质而非表象,所以非常推荐大家耐心阅读。我是3.28号收到的书,在上下班的路上断断续续完成了阅读(这就是上下班需要花3个小时的好处),所谓的断断续续就是每个点都了解了,但是没有串成线形成面。今天刚好周六就抽了一下午加一晚上把所有的内容从头到位又串联了一次,整体下来差不多花了两周时间才消化完。
为啥对 MySQL突然来了兴趣呢,缘于2021年底以来公司内部组织了两场分享,当时听完分享后针对分享的PPT消化了一波,但是总感觉不得劲。虽然理解了分享中部分场景但却无法理解背后的原理,所以断断续续在网上搜集些介绍 MySQL 的书籍就发现了这本书,阅读后再重新回顾之前的分享,感觉突然开窍了。
梳理了下整个书本的内容,按照个人的理解给出阅读的建议,首先这部分的内容其实挺多的,但是建议聚焦于几条核心的线:innoDB的数据存储,索引的设计和应用,redo/undo 日志以及 mvcc 的原理。
关于 innoDB 的存储,这部分建议阅读章节: 从一条记录说起—— InnoDB 记录结构、盛放记录的大盒子 —— InnoDB 数据页结构、 调节磁盘和CPU的矛盾 —— InnoDB 的 Buffer Pool》。这三个章节按照数据存储由微观到宏观的顺序进行讲解:单条记录的存储结构、页维度的存储结构、Buffer Pool 的存储结构等。
索引的设计和应用,这部分阅读建议建立在innoDB的存储相关章节已经完成阅读的基础上,相关章节包括: 快速查询的秘籍 —— B+ 树索引、 好东西也得先学会怎么用 —— B+ 树索引的使用。这两个章节介绍索引的存储结构以及实际应用,跟日常工作比较有强关联性。
redo/undo 日志以及 mvcc 的原理,这部分建议阅读章节: 说过的话就一定要办到 —— redo 日志(上)、 说过的话就一定要办到 —— redo 日志(下)、 后悔了怎么办 —— undo 日志 (上)、 后悔了怎么办 —— undo 日志 (下)、 一条记录的多幅面孔 —— 事务的隔离级别与MVCC。这几个章节主要是为了讲清楚 MVCC 的底层实现原理。
最后推荐对 MySQL 有兴趣的同学可以买来翻翻看,收获肯定是有的。
MySQL架构如下:
我们写的sql语句通过client对接MYSQL的连接层,然后有查询缓存,语法解析器,优化器,生成最终执行计划,然后去查询插件式存储引擎,如InnoDB等。我们的数据是通过存储引擎来和物理设备交互的。
你的问题太泛泛了,“MYSQL的程序”你指的是什么?是MYSQL的 存储过程??您最好是具体问题具体问,你这样提问的话大家都不知道你想要什么!
mysql soure example.sql里的soure写错了应该是source!!!!example.sql是你实现先编辑好的文本内容,内容可以是创建一个数据库,然后再数据库下建立一个或多个数据表,再往表里插入一些记录!!然后再写个存储过程完成一些简单的功能,比如把A表里的内容插入到B表等等(可以加内容存在就修改不存在就插入等判断)!!建立一个.SQL文件就是为了方便!!随便举个例子:在D盘根目录下用记事本建立个example.sql文件,内容如下:
CREATE database name ;
use name;
CREATE TABLE a (
user_id int(11) DEFAULT NULL,
name char(11) DEFAULT NULL,
UNIQUE KEY USER_ID (user_id)
);
insert into a (user_id,name) values (1,'aaa'),(2,'bbb');
CREATE TABLE b (
user_id int(11) DEFAULT NULL,
name char(11) DEFAULT NULL,
UNIQUE KEY USER_ID (user_id)
);
insert into b (user_id,name) values (1,'xxx'),(3,'ccc');
DELIMITER $$
DROP PROCEDURE IF EXISTS qq$$
CREATE PROCEDURE qq()
begin
declare p_user_id varchar(6);
declare p_name varchar(6);
declare cursor_flag int default 0;
declare user_nrb cursor for select user_id,name from a;
declare continue handler for sqlstate '02000' set cursor_flag = 1;
open user_nrb;
repeat
fetch user_nrb into p_user_id,p_name;
if not cursor_flag then
if not exists (select * from b where user_id=p_user_id) then
insert into b(user_id,name)values(p_user_id,p_name);
else
update b set name=p_name where user_id=p_user_id;
end if;
end if;
until cursor_flag end repeat;
close user_nrb;
end$$
DELIMITER ;
顺序是建立名为name的数据库,其下建立俩表A和B,为A表插入用户1和2,为B表插入用户1,3!!再建立名为QQ的存储过程,功能是把a表的用户导入到B表,如果A的用户号再B里没有直接插入,如果A里的用户号已经在B表里了那就改变B表里相应用户的名字!!大概是这么个过程!!在MYSQL自带的客户端导入刚才建立的example.sql文件,顺序是:开始——程序——MYSQL——MYSQL SERVER5.1——MYSQL COMMAND LINE CLIENT 窗口里输入ROOT用户密码在光标处输入source d:\example.sql!!最后再执行存储过程,敲call qq;回车!!!
验证方法是敲select * from b;回车!!可以发现B表由本来插入的2条记录变成3条记录,而且用户1的名字也从xxx变成aaa了!!!!
希望对你有帮助!另外最重要的是MYSQL有一些很好的图形界面客户端工具,不用这个DOS界面的东西,下载个sqlyog什么的软件装上,基本一启动就会用了的东西!在SQLYOG的界面直接把example.sql里的内容复制过来粘贴后按F5键运行即可!!!
两种
1.安装MYSQL 官网的MSI 程序,安装完,直接打开使用,现在最新的版本都有界面编辑器
2.在官网下载压缩包,解压后,再使用,没搞过
网页链接
《MySQL是怎样运行的:从根儿上理解 MySQL》采用诙谐幽默的表达方式,对MySQL的底层运行原理进行了介绍,内容涵盖了使用MySQL的同学在求职面试和工作中常见的一些核心概念。总计22 章,划分为4个部分。第1部分介绍了MySQL入门的一些知识,比如MySQL的服务器程序和客户端程序有哪些、MySQL的启动选项和系统变量,以及使用的字符集等。第2部分是本书后续章节的基础,介绍了MySQL的一些基础知识,比如记录、页面、索引、表空间的结构和用法等。第3部分则与大家在工作中经常遇到的查询优化问题紧密相关,介绍了单表查询、连接查询的执行原理,MySQL基于成本和规则的优化具体指什么,并详细分析了Explain语句的执行结果。第4部分则是与MySQL中的事务和锁相关,介绍了事务概念的来源,MySQL是如何实现事务的,包括redo日志、undo日志、MVCC、各种锁的细节等。
尽管《MySQL是怎样运行的:从根儿上理解 MySQL》在写作时参考的MySQL源代码版本是5.7.22,但是大部分内容与具体的版本号并没有多大关系。无论是很早之前就已身居MySQL专家的人员,还是希望进一步提升技能的DBA,甚至是三五年后才会入行的“萌新”,本书都是他们彻底了解MySQL运行原理的优秀书