本篇主要提供MySQL应用实战与性能调优张文亮机械工业计算机与互联网书籍电子书的pdf版本下载,本电子书下载方式为百度网盘方式,点击以上按钮下单完成后即会通过邮件和网页的方式发货,有问题请联系邮箱ebook666@outlook.com
商品基本信息,请以下列介绍为准 | |
商品名称: | MySQL应用实战与性能调优 |
作者: | 张文亮 |
定价: | 79.0 |
出版社: | 机械工业出版社 |
出版日期: | 2021-08-01 |
ISBN: | 9787111700982 |
印次: | |
版次: | 1 |
装帧: | |
开本: | 16开 |
内容简介 |
MySQL是流行的关系型数据库管理系统之一。书中从数据设计和数据库的基本使用开始介绍,逐步深入一些复杂的内容括连接查询的使用、子查询、字符串函数、数字函数、日期函数以及本的窗口函数,括存储过程、游标、创建的索引以及SQL优化技巧等。通过大量的示例应用,系统地讲述读者应该掌握的知识,以及对于数据库的优化,其括MySQL的架构以及MySQL 8的新特征,含MySQL基准测试和性能剖析,数据库软硬件性能优化,内存优化,、备份和恢复,高可用与高可扩展性,尤其对于MySQL中各种锁机制以及MySQL的MVCC的核心原理都一一通过理论和大量的示行解析,以方便读者理解。 |
目录 |
前言第1章 MySQL入门和容器化部署11.1 MySQL介绍11.2 MySQL 8安装和升级21.2.1 安装前说明21.2.2 在Windows上安装MySQL21.2.3 在Linux上安装MySQL81.2.4 在Docker上安装MySQL12第2章 什么样的数据库设计才是很好的172.1 关系型数据库设计理论172.2 连接数据库和基本信息查询212.2.1 连接数据库212.2.2 基本信息查询212.3 数据库和表252.3.1 创建数据库262.3.2 创建表272.4 数据类型和类型异常处理282.4.1 数字数据类型282.4.2 日期和时间数据类型322.4.3 字符串数据类型332.4.4 JSON数据类型39第3章 SQL语句全面解析和应用实战443.1 数据库操作443.2 数据表操作463.2.1 创建数据表463.2.2 数据表的修改与删除483.2.3 约束493.3 数据查询503.4 数据插入513.5 where(筛选)523.6 and和or(与和或)543.7 between(范围查找)553.8 distinct(去重关键字)563.9 update(修改或更新)563.10 delete(删除)583.11 like(模糊匹配)593.12 order by(排序)613.13 group by(分组)623.14 with rollup(分组统计再统计)633.15 having(分组筛选)643.16 union和union all(组合查询)643.17 join(连接查询)673.17.1 inner join(内连接)683.17.2 left join(左连接)693.17.3 right join(右连接)703.18 in和not in(多关键字筛选)713.19 exists和not exists(是否返回结果集)723.20 表733.21 临时表74第4章 MySQL函数大率统计实战764.1 MySQL字符串函数764.1.1 character_length(s):返回字符串长度764.1.2 concat(s2,(,sn):字符串合并774.1.3 format(x,n):数字格式化774.1.4 lpad(s1,len,s2):字符串填充774.1.5 field(s,s2,():返回字符串出现的位置774.1.6 insert(s1,x,len,s2):替换字符串784.1.7 lcase(s):把字符串中的所有字母转换为小写字母784.1.8 ucase(s):把字符串中的所有字母转换为大写字母784.1.9 strcmp(s2):比较字符串大小784.1.10 rece(s,s2):字符串替换794.1.11 position(s1 in s):获取子字符串在字符串中出现的位置794.1.12 md5(s):字符串加密794.1.13 inet_aton(ip):把IP地址转换为数字804.1.14 inet_ntoa (s):把数字转换为IP地址804.2 MySQL数字函数804.2.1 ceil(x):返回不小于x的小整数804.2.2 ceiling(x):返回不小于x的小整数804.2.3 floor(x):返回不大于x的优选整数814.2.4 round(x):返回x的整数814.2.5 max(expression):求优选值814.2.6 min(expression):求小值824.2.7 sum(expression):和824.2.8 avg(expression):均值834.2.9 count(expression):记录数834.3 MySQL日期函数844.3.1 date(d,n):返回日期加上天数后的日期844.3.2 time(t,n):返回时间加上时间后的时间844.3.3 curdate():返回当前日期854.3.4 datediff(d1,d2):返回两个日期相隔的天数854.3.5 dayofyear(d):返回日期是本年的第几天854.3.6 extract(type from d):根据对应格式返回日期854.3.7 now():返回当前日期和时间864.3.8 quarter(d):返回日期对应的季度数874.3.9 second(t):返回时间中的秒数874.3.10 timediff(time1, time2):计算时间差874.3.11 date(t):从日期时间中提取日期值884.3.12 hour(t):返回时间中的小时数884.3.13 time(expression):提取日期时间参数中的时间部分884.3.14 time_format(t,f):根据表达式显示时间884.3.15 year(d):返回日期的年份894.4 MySQL不错函数894.4.1 cast(x as type):数据类型转换894.4.2 coalesce(expr1, (, exprn):返回个非空表达式894.4.3 if(expr,v1,v2):表达式判断904.4.4 ifnull(v1,v2):null替换904.4.5 isnull(expression):判断表达式是否为null904.4.6 nullif(expr1, expr2):字符串相等则返回null914.4.7 last_insert_id():返回生成的自增ID914.4.8 case expression:表达式分支924.5 MySQL over():窗口函数分析924.5.1 row _number():顺序排名函数944.5.2 rank():跳级排名函数954.5.3 dense_rank():不跳级排名函数964.5.4 lag(expr,n):前分析函数,返回前n行的值964.5.5 lead(expr,n):后分析函数,返回后n行的值984.5.6 first_value(expr):头尾函数,返回个值984.5.7 last_value(expr):头尾函数,返回后一个值994.5.8 nth_value(expr,n):从结果集中的第n行获取值1014.5.9 ntile(n):数据集分桶1024.5.um() over(expr):聚合求和1034.5.11 avg() over(expr):聚合均值1044.5.12 max() over(expr):聚合求优选值1044.5.13 min() over(expr):聚合求小值1054.5.14 count() over(expr):聚条数105第5章 MySQL大表快速优化诀窍1075.1 分区1075.1.1 分区类型1085.1.2 范围分区1085.1.3 列表分区1115.1.4 列分区1135.1.5 哈希分区1215.1.6 键分区1245.1.7 子分区1255.1.8 MySQL分区对null的处理1265.1.9 分区管理1325.1.10 分区的1385.2 视图1425.3 存储过程1455.3.1 存储过程的创建和调用1455.3.2 带参数的存储过程1475.3.3 变量1505.3.4 注释1515.3.5 存储过程的修改和删除1525.3.6 存储过程的控制语句1525.4 游标1545.5 字符集和排序规则1575.5.1 MySQL中的字符集和排序规则1575.5.2 列字符集和排序规则1605.5.3 使用collate查询排序规则160第6章 MySQL创建的索引1626.1 索引1626.2 创建索引的指导原则1656.3 B-Tree索引和哈希索引的比较1666.4 S分析利器的执行计划分析1676.5 SQL的索引检索原理1836.5.1 主键索引1836.5.2 普通索引1876.5.3 复合索引1896.6 索引的使用技巧与SQL优化实战1916.6.1 避免回表查询1916.6.2 尽量使用联合索引1916.6.3 索引条件下推优化1926.6.4 避免全表扫描1926.6.5 负向查询不能使用索引1926.6.6 前导模糊查询不能使用索引1936.6.7 在字段上计中索引1936.6.8 查询条件类型不一致不能命中索引1936.6.9 明确知道只返回一条记录可以使用limi行1936.6.10 limit分页优化1936.6.11 使用表内连行limit分页优化1946.6.12 union all优化(基于MySQL 8.0+)1946.6.13 or优化(基于MySQL 8.0+)1946.6.14 count(*)优化1946.6.15 on duplicate key update优化195第7章 InnoDB存储引擎揭秘和优化实战1967.1 InnoDB存储引擎实践1987.2 InnoDB和ACID模型1987.2.1 MySQL事务处理的两种方法1997.2.2 InnoDB MVCC2017.3 锁机制2017.3.1 表级锁2017.3.2 行级锁2027.3.3 共享锁2027.3.4 排他锁2037.3.5 意向锁2057.3.6 乐观锁2057.3.7 悲观锁2067.3.8 间隙锁2067.3.9 记录锁2087.3.10 临键锁2087.3.11 死锁2097.4 事务隔离级别2097.5 InnoDB内存结构解析和优化实战2137.5.1 缓冲池原理和优化2137.5.2 变更缓冲区原理与优化2247.5.3 自适应哈希索引原理与配置2267.5.4 日志缓冲区2267.6 InnoDB表实战调优2277.6.1 优化InnoDB表的存储2277.6.2 InnoDB事务处理优化2297.6.3 InnoDB只读事务优化2297.6.4 优化InnoDB重做日志2297.6.5 InnoDB磁盘I/O优化2347.6.6 配置InnoDB线程并发数量2347.6.7 配置InnoDB的I/O读写后台线程数量2357.6.8 InnoDB的并行读线程数量2357.6.9 InnoDB的I/O容量236第8章 MySQL基准测试数据的备份与还原2378.1 基准测试2378.1.1 Syench介绍2388.1.2 Syench测试实操2398.2 备份2438.3 还原2448.3.1 利用source命令导入数据库2448.3.2 利用load data导入数据2448.3.3 利用mysqlimport导入数据244第9章 MySQL高性能架构的读写分离2459.1 读写分离2459.2 MySQL主从2469.3 MySQL主从架构的搭建2479.3.1 配置主节点2479.3.2 配置从节点2489.3.3 主从249附录 常用函数速查表251A.1 MySQL字符串函数251A.1.1 ASCII(s):返回字符串的ASCII码251A.1.2 char_length(s):返回字符串长度251A.1.3 character_length(s):返回字符串长度252A.1.4 concat(s2,(,sn):字符串合并252A.1.5 concat_WS(x, s2,(,sn):字符串合并252A.1.6 field(s,s2,():返回字符串出现的位置253A.1.7 find_in_set(s2):返回字符串的匹配位置253A.1.8 format(x,n):数字格式化253A.1.9 insert(s1,x,len,s2):替换字符串253A.1.10 locate(s):获取字符串出现的位置254A.1.11 lcase(s):把字符串中的所有字母转换为小写字母254A.1.12 left(s,n):返回字符串的前n个字符254A.1.13 lower(s):把字符串中的所有字母转换为小写字母254A.1.14 lpad(s1,len,s2):字符串填充25.1.15 ltrim(s):去掉字符串开始处的空格25.1.16 mid(s,n,len):从字符串的位置截取子字符串25.1.17 rece(s,s2):字符串替换256A.1.18 reverse(s):字符串反转256A.1.19 right(s,n):返回字符串后n个字符256A.1.20 rpad(s1,len,s2):在字符串中填充相应字符串256A.1.21 position(s1 in s):获取子字符串在字符串中出现的位置257A.1.22 repeat(s,n):字符串重复拼接257A.1.23 string_index(s, s2, number):返回字符串中第n个出现的子字符串257A.1.24 trim(s):去掉字符串开始和结尾处的空格258A.1.25 ucase(s):把字符串中的所有字母转换为大写字母258A.1.26 rtrim(s):去掉字符串结尾处的空格258A.1.27 strcmp(s2):比较字符串的大小258A.1.28 str(s, start, length):从字符串中截取子字符串259A.1.29 string(s, start, length):从字符串中截取子字符串259A.1.30 md5(s):字符串加密259A.1.31 inet_aton (ip):把IP地址转换为数字260A.1.32 inet_ntoa(s):把数字转换为IP地址260A.2 MySQL数字函数260A.2.1 abs(x):求值260A.2.2 sign(x):返回数字符号260A.2.3 acos(x):求反余弦值261A.2.4 asin(x):求反正弦值261A.2.5 atan (x):求反正切值261A.2.6 sin(x):求正弦值262A.2.7 cos(x):求余弦值262A.2.8 cot(x):求余切值262A.2.9 tan(x):求正切值262A.2.10 degrees(x):将弧度转换为角度263A.2.11 radians(x):将角度转换为弧度263A.2.12 exp(x):返回e的x次方263A.2.13 ceil(x):返回不小于x的小整数264A.2.14 ceiling(x):返回不小于x的小整数264A.2.15 floor(x):返回不大于x的优选整数264A.2.16 round(x):返回x的整数264A.2.17 greatest(expr1,expr2, ():返回列表中的优选值26.2.18 least(expr1, expr2, expr3, ():返回列表中的小值26.2.19 ln(x):求自然对数26.2.20 log(x)或log(base, x):求对数266A.2.21 log10(x):求以10为底的对数266A.2.22 log2(x):求以2为底的对数266A.2.23 max(expression):求优选值267A.2.24 min(expression):求小值267A.2.25 sum(expression):和268A.2.26 avg(expression):均值268A.2.27 count(expression):记录数268A.2.28 mod(x,y):求余数269A.2.29 pow(x,y):求x的y次方269A.2.30 sqrt(x):方根269A.2.31 rand():求随机数270A.2.32 truncate(x,y):返回保留到小数点后n位的值270A.3 MySQL日期函数270A.3.1 date(d,n):返回日期加上天数后的日期270A.3.2 time(t,n):返回时间加上时间后的时间271A.3.3 curdate():返回当前日期271A.3.4 current_date():返回当前日期271A.3.5 current_time():返回当前时间272A.3.6 current_timestamp():返回当前日期和时间272A.3.7 curtime():返回当前时间272A.3.8 date(t):从日期时间中提取日期值272A.3.9 datediff(d1,d2):返回两个日期相隔的天数273A.3.10 date_(d, interval expr type):给日期加上一个时间段后的日期273A.3.11 date_format(d,f):根据表达式显示日期273A.3.12 date_(date, interval expr type):从当前日期减去的时间间隔274A.3.13 day(d):返回日期值中的日值274A.3.14 dayname(d):返回日期是星期几274A.3.15 dayofmonth(d):返回日期是本月的第几天27.3.16 dayofweek(d):返回日期是所在星期的第几天27.3.17 dayofyear(d):返回日期是本年的第几天27.3.18 extract (type from d):根据对应格式返回日期27.3.19 from_days(n):返回元年加n天的日期277A.3.20 hour(t):返回时间中的小时数277A.3.21 last_day(d):返回给定日期所在月份的后一天277A.3.22 localtime():返回当前日期和时间277A.3.23 localtimestamp():返回当前日期和时间278A.3.24 makedate(year, day-of-year):时间组合天数278A.3.25 maketime(hour, minute, second):时间组合278A.3.26 microsecond(date):返回时间参数中的微秒数278A.3.27 minute(t):返回时间中的分钟数279A.3.28 monthname(d):返回日期中的月份名称279A.3.29 month(d):返回日期中的月份值279A.3.30 |