您好,欢迎光临有路网!
MySQL应用实战与性能调优
QQ咨询:
有路璐璐:

MySQL应用实战与性能调优

  • 作者:张文亮 编著
  • 出版社:机械工业出版社
  • ISBN:9787111700982
  • 出版日期:2022年04月01日
  • 页数:304
  • 定价:¥79.00
  • 分享领佣金
    手机购买
    城市
    店铺名称
    店主联系方式
    店铺售价
    库存
    店铺得分/总交易量
    发布时间
    操作

    新书比价

    网站名称
    书名
    售价
    优惠
    操作

    图书详情

    内容提要
    MySQL是流行的关系型数据库管理系统之一。书中从数据设计和数据库的基本使用开始介绍,逐步深入一些复杂的内容,包括连接查询的使用、子查询、字符串函数、数字函数、日期函数以及新版本的窗口函数,还包括存储过程、游标、创建**的索引以及SQL优化技巧等。通过大量的示例应用,系统地讲述读者应该掌握的知识,以及对于数据库的优化,其中包括MySQL的架构以及MySQL 8的新特征,也包含MySQL基准测试和性能剖析,数据库软硬件性能优化,内存优化,复制、备份和恢复,高可用与高可扩展性,尤其对于MySQL中各种锁机制以及MySQL的MVCC的核心原理都一一通过理论和大量的示例进行解析,以方便读者理解。
    目录
    前言 第1章 MySQL入门和容器化部署1 1.1 MySQL介绍1 1.2 MySQL 8安装和升级2 1.2.1 安装前说明2 1.2.2 在Windows上安装MySQL2 1.2.3 在Linux上安装MySQL8 1.2.4 在Docker上安装MySQL12 第2章 什么样的数据库设计才是**的17 2.1 关系型数据库设计理论17 2.2 连接数据库和基本信息查询21 2.2.1 连接数据库21 2.2.2 基本信息查询21 2.3 数据库和表25 2.3.1 创建数据库26 2.3.2 创建表27 2.4 数据类型和类型异常处理28 2.4.1 数字数据类型28 2.4.2 日期和时间数据类型32 2.4.3 字符串数据类型33 2.4.4 JSON数据类型39 第3章 SQL语句全面解析和应用实战44 3.1 数据库操作44 3.2 数据表操作46 3.2.1 创建数据表46 3.2.2 数据表的修改与删除48 3.2.3 约束49 3.3 数据查询50 3.4 数据插入51 3.5 where(筛选)52 3.6 and和or(与和或)54 3.7 between(范围查找)55 3.8 distinct(去重关键字)56 3.9 update(修改或更新)56 3.10 delete(删除)58 3.11 like(模糊匹配)59 3.12 order by(��序)61 3.13 group by(分组)62 3.14 with rollup(分组统计再统计)63 3.15 having(分组筛选)64 3.16 union和union all(组合查询)64 3.17 join(连接查询)67 3.17.1 inner join(内连接)68 3.17.2 left join(左连接)69 3.17.3 right join(右连接)70 3.18 in和not in(多关键字筛选)71 3.19 exists和not exists(是否返回结果集)72 3.20 复制表73 3.21 临时表74 第4章 MySQL函数大全和**率汇总统计实战76 4.1 MySQL字符串函数76 4.1.1 character_length(s):返回字符串长度76 4.1.2 concat(s1,s2,(,sn):字符串合并77 4.1.3 format(x,n):数字格式化77 4.1.4 lpad(s1,len,s2):字符串填充77 4.1.5 field(s,s1,s2,():返回字符串出现的位置77 4.1.6 insert(s1,x,len,s2):替换字符串78 4.1.7 lcase(s):把字符串中的所有字母转换为小写字母78 4.1.8 ucase(s):把字符串中的所有字母转换为大写字母78 4.1.9 strcmp(s1,s2):比较字符串大小78 4.1.10 replace(s,s1,s2):字符串替换79 4.1.11 position(s1 in s):获取子字符串在字符串中出现的位置79 4.1.12 md5(s):字符串加密79 4.1.13 inet_aton(ip):把IP地址转换为数字80 4.1.14 inet_ntoa (s):把数字转换为IP地址80 4.2 MySQL数字函数80 4.2.1 ceil(x):返回不小于x的小整数80 4.2.2 ceiling(x):返回不小于x的小整数80 4.2.3 floor(x):返回不大于x的整数81 4.2.4 round(x):返回接近x的整数81 4.2.5 max(expression):求值81 4.2.6 min(expression):求小值82 4.2.7 sum(expression):求总和82 4.2.8 avg(expression):求平均值83 4.2.9 count(expression):求总记录数83 4.3 MySQL日期函数84 4.3.1 adddate(d,n):返回指定日期加上指定天数后的日期84 4.3.2 addtime(t,n):返回指定时间加上指定时间后的时间84 4.3.3 curdate():返回当前日期85 4.3.4 datediff(d1,d2):返回两个日期相隔的天数85 4.3.5 dayofyear(d):返回指定日期是本年的第几天85 4.3.6 extract(type from d):根据对应格式返回日期85 4.3.7 now():返回当前日期和时间86 4.3.8 quarter(d):返回日期对应的季度数87 4.3.9 second(t):返回指定时间中的秒数87 4.3.10 timediff(time1, time2):计算时间差87 4.3.11 date(t):从指定日期时间中提取日期值88 4.3.12 hour(t):返回指定时间中的小时数88 4.3.13 time(expression):提取日期时间参数中的时间部分88 4.3.14 time_format(t,f):根据表达式显示时间88 4.3.15 year(d):返回指定日期的年份89 4.4 MySQL**函数89 4.4.1 cast(x as type):数据类型转换89 4.4.2 coalesce(expr1, (, exprn):返回个非空表达式89 4.4.3 if(expr,v1,v2):表达式判断90 4.4.4 ifnull(v1,v2):null替换90 4.4.5 isnull(expression):判断表达式是否为null90 4.4.6 nullif(expr1, expr2):字符串相等则返回null91 4.4.7 last_insert_id():返回近生成的自增ID91 4.4.8 case expression:表达式分支92 4.5 MySQL over():窗口函数汇总分析92 4.5.1 row _number():顺序排名函数94 4.5.2 rank():跳级排名函数95 4.5.3 dense_rank():不跳级排名函数96 4.5.4 lag(expr,n):前分析函数,返回前n行的值96 4.5.5 lead(expr,n):后分析函数,返回后n行的值98 4.5.6 first_value(expr):头尾函数,返回个值98 4.5.7 last_value(expr):头尾函数,返回后一个值99 4.5.8 nth_value(expr,n):从结果集中的第n行获取值101 4.5.9 ntile(n):数据集分桶102 4.5.10 sum() over(expr):聚合求和103 4.5.11 avg() over(expr):聚合求平均值104 4.5.12 max() over(expr):聚合求值104 4.5.13 min() over(expr):聚合求小值105 4.5.14 count() over(expr):聚合总条数105 第5章 MySQL大表快速优化诀窍107 5.1 分区107 5.1.1 分区类型108 5.1.2 范围分区108 5.1.3 列表分区111 5.1.4 列分区113 5.1.5 哈希分区121 5.1.6 键分区124 5.1.7 子分区125 5.1.8 MySQL分区对null的处理126 5.1.9 分区管理132 5.1.10 分区的限制138 5.2 视图142 5.3 存储过程145 5.3.1 存储过程的创建和调用145 5.3.2 带参数的存储过程147 5.3.3 变量150 5.3.4 注释151 5.3.5 存储过程的修改和删除152 5.3.6 存储过程的控制语句152 5.4 游标154 5.5 字符集和排序规则157 5.5.1 MySQL中的字符集和排序规则157 5.5.2 列字符集和排序规则160 5.5.3 使用collate指定查询排序规则160 第6章 MySQL创建**的索引162 6.1 索引162 6.2 创建索引的指导原则165 6.3 B-Tree索引和哈希索引的比较166 6.4 **SQL分析利器的执行计划分析167 6.5 **SQL的索引检索原理183 6.5.1 主键索引183 6.5.2 普通索引187 6.5.3 复合索引189 6.6 索引的使用技巧与SQL优化实战191 6.6.1 避免回表查询191 6.6.2 尽量使用联合索引191 6.6.3 索引条件下推优化192 6.6.4 避免全表扫描192 6.6.5 负向查询不能使用索引192 6.6.6 前导模糊查询不能使用索引193 6.6.7 在字段上计算不能命中索引193 6.6.8 查询条件类型不一致不能命中索引193 6.6.9 明确知道只返回一条记录可以使用limit进行限制193 6.6.10 limit分页优化193 6.6.11 使用表内连接进行limit分页优化194 6.6.12 union all优化(基于MySQL 8.0+)194 6.6.13 or优化(基于MySQL 8.0+)194 6.6.14 count(*)优化194 6.6.15 on duplicate key update优化195 第7章 InnoDB存储引擎揭秘和优化实战196 7.1 InnoDB存储引擎实践198 7.2 InnoDB和ACID模型198 7.2.1 MySQL事务处理的两种方法199 7.2.2 InnoDB MVCC201 7.3 锁机制201 7.3.1 表级锁201 7.3.2 行级锁202 7.3.3 共享锁202 7.3.4 排他锁203 7.3.5 意向锁205 7.3.6 乐观锁205 7.3.7 悲观锁206 7.3.8 间隙锁206 7.3.9 记录锁208 7.3.10 临键锁208 7.3.11 死锁209 7.4 事务隔离级别209 7.5 InnoDB内存结构解析和优化实战213 7.5.1 缓冲池原理和优化213 7.5.2 变更缓冲区原理与优化224 7.5.3 自适应哈希索引原理与配置226 7.5.4 日志缓冲区226 7.6 InnoDB表实战调优227 7.6.1 优化InnoDB表的存储227 7.6.2 InnoDB事务处理优化229 7.6.3 InnoDB只读事务优化229 7.6.4 优化InnoDB重做日志229 7.6.5 InnoDB磁盘I/O优化234 7.6.6 配置InnoDB线程并发数量234 7.6.7 配置InnoDB的I/O读写后台线程数量235 7.6.8 InnoDB的并行读线程数量235 7.6.9 InnoDB的I/O容量236 第8章 MySQL基准测试数据的备份与还原237 8.1 基准测试237 8.1.1 Sysbench介绍238 8.1.2 Sysbench测试实操239 8.2 备份243 8.3 还原244 8.3.1 利用source命令导入数据库244 8.3.2 利用load data导入数据244 8.3.3 利用mysqlimport导入数据244 第9章 MySQL高性能架构的读写分离245 9.1 读写分离245 9.2 MySQL主从复制246 9.3 MySQL主从复制架构的搭建247 9.3.1 配置主节点247 9.3.2 配置从节点248 9.3.3 主从复制249 附录 常用函数速查表251 A.1 MySQL字符串函数251 A.1.1 ASCII(s):返回字符串的ASCII码251 A.1.2 char_length(s):返回字符串长度251 A.1.3 character_length(s):返回字符串长度252 A.1.4 concat(s1,s2,(,sn):字符串合并252 A.1.5 concat_WS(x, s1,s2,(,sn):字符串合并252 A.1.6 field(s,s1,s2,():返回字符串出现的位置253 A.1.7 find_in_set(s1,s2):返回字符串的匹配位置253 A.1.8 format(x,n):数字格式化253 A.1.9 insert(s1,x,len,s2):替换字符串253 A.1.10 locate(s1,s):获取字符串出现的位置254 A.1.11 lcase(s):把字符串中的所有字母转换为小写字母254 A.1.12 left(s,n):返回字符串的前n个字符254 A.1.13 lower(s):把字符串中的所有字母转换为小写字母254 A.1.14 lpad(s1,len,s2):字符串填充255 A.1.15 ltrim(s):去掉字符串开始处的空格255 A.1.16 mid(s,n,len):从字符串的指定位置截取子字符串255 A.1.17 replace(s,s1,s2):字符串替换256 A.1.18 reverse(s):字符串反转256 A.1.19 right(s,n):返回字符串后n个字符256 A.1.20 rpad(s1,len,s2):在字符串中填充相应字符串256 A.1.21 position(s1 in s):获取子字符串在字符串中出现的位置257 A.1.22 repeat(s,n):字符串重复拼接257 A.1.23 substring_index(s, s2, number):返回字符串中第n个出现的子字符串257 A.1.24 trim(s):去掉字符串开始和结尾处的空格258 A.1.25 ucase(s):把字符串中的所有字母转换为大写字母258 A.1.26 rtrim(s):去掉字符串结尾处的空格258 A.1.27 strcmp(s1,s2):比较字符串的大小258 A.1.28 substr(s, start, length):从字符串中截取子字符串259 A.1.29 substring(s, start, length):从字符串中截取子字符串259 A.1.30 md5(s):字符串加密259 A.1.31 inet_aton (ip):把IP地址转换为数字260 A.1.32 inet_ntoa(s):把数字转换为IP地址260 A.2 MySQL数字函数260 A.2.1 abs(x):求值260 A.2.2 sign(x):返回数字符号260 A.2.3 acos(x):求反余弦值261 A.2.4 asin(x):求反正弦值261 A.2.5 atan (x):求反正切值261 A.2.6 sin(x):求正弦值262 A.2.7 cos(x):求余弦值262 A.2.8 cot(x):求余切值262 A.2.9 tan(x):求正切值262 A.2.10 degrees(x):将弧度转换为角度263 A.2.11 radians(x):将角度转换为弧度263 A.2.12 exp(x):返回e的x次方263 A.2.13 ceil(x):返回不小于x的小整数264 A.2.14 ceiling(x):返回不小于x的小整数264 A.2.15 floor(x):返回不大于x的整数264 A.2.16 round(x):返回接近x的整数264 A.2.17 greatest(expr1,expr2, ():返回列表中的值265 A.2.18 least(expr1, expr2, expr3, ():返回列表中的小值265 A.2.19 ln(x):求自然对数265 A.2.20 log(x)或log(base, x):求对数266 A.2.21 log10(x):求以10为底的对数266 A.2.22 log2(x):求以2为底的对数266 A.2.23 max(expression):求值267 A.2.24 min(expression):求小值267 A.2.25 sum(expression):求总和268 A.2.26 avg(expression):求平均值268 A.2.27 count(expression):求总记录数268 A.2.28 mod(x,y):求余数269 A.2.29 pow(x,y):求x的y次方269 A.2.30 sqrt(x):求平方根269 A.2.31 rand():求随机数270 A.2.32 truncate(x,y):返回保留到小数点后n位的值270 A.3 MySQL日期函数270 A.3.1 adddate(d,n):返回指定日期加上指定天数后的日期270 A.3.2 addtime(t,n):返回指定时间加上指定时间后的时间271 A.3.3 curdate():返回当前日期271 A.3.4 current_date():返回当前日期271 A.3.5 current_time():返回当前时间272 A.3.6 current_timestamp():返回当前日期和时间272 A.3.7 curtime():返回当前时间272 A.3.8 date(t):从指定日期时间中提取日期值272 A.3.9 datediff(d1,d2):返回两个日期相隔的天数273 A.3.10 date_add(d, interval expr type):给指定日期加上一个时间段后的日期273 A.3.11 date_format(d,f):根据表达式显示日期273 A.3.12 date_sub(date, interval expr type):从当前日期减去指定的时间间隔274 A.3.13 day(d):返回日期值中的日值274 A.3.14 dayname(d):返回指定日期是星期几274 A.3.15 dayofmonth(d):返回指定日期是本月的第几天275 A.3.16 dayofweek(d):返回指定日期是所在星期的第几天275 A.3.17 dayofyear(d):返回指定日期是本年的第几天275 A.3.18 extract (type from d):根据对应格式返回日期275 A.3.19 from_days(n):返回元年加n天的日期277 A.3.20 hour(t):返回指定时间中的小时数277 A.3.21 last_day(d):返回给定日期所在月份的后**277 A.3.22 localtime():返回当前日期和时间277 A.3.23 localtimestamp():返回当前日期和时间278 A.3.24 makedate(year, day-of-year):时间组合天数278 A.3.25 maketime(hour, minute, second):时间组合278 A.3.26 microsecond(date):返回时间参数中的微秒数278 A.3.27 minute(t):返回指定时间中的分钟数279 A.3.28 monthname(d):返回日期中的月份名称279 A.3.29 month(d):返回日期中的月份值279 A.3.30

    与描述相符

    100

    北京 天津 河北 山西 内蒙古 辽宁 吉林 黑龙江 上海 江苏 浙江 安徽 福建 江西 山东 河南 湖北 湖南 广东 广西 海南 重庆 四川 贵州 云南 西藏 陕西 甘肃 青海 宁夏 新疆 台湾 香港 澳门 海外