词条 | 深入浅出MySQL:数据库开发优化与管理维护 |
释义 | 该书由唐汉明、 翟振兴、 兰丽华联合编写,2008由人民邮电出版社出版发行。《深入浅出MySQL数据库开发、优化与管理维护》从数据库的基础、开发、优化、管理维护4个方面对MySQL进行了详细的介绍,其中每一部分都独立成篇。《深入浅出MySQL数据库开发、优化与管理维护》内容实用,覆盖广泛,讲解由浅入深,适合于各个层次的读者。 版权信息书 名: 深入浅出MySQL:数据库开发优化与管理维护 作 者:唐汉明 翟振兴 兰丽华 出版社: 人民邮电出版社 出版时间: 2008 ISBN: 9787115175625 开本: 16 定价: 59.00 元 内容简介基础篇主要适合于MySQL的初学者,内容包括MySQL的安装与配置、SQL基础、MySQL支持的数据类型、MySQL中的运算符、常用函数、图形化工具的使用等。开发篇主要适合于MySQL的设计和开发人员,内容包括表类型(存储引擎)的选择、选择合适的数据类型、字符集、索引的设计和使用、视图、存储过程和函数、触发器、事务控制和锁定语句、SQL中的安全问题、SQLMode及相关问题等。优化篇主要适合于开发人员和数据库管理员,内容包括常用SQL技巧和常见问题、SQL优化、优化数据库对象、锁问题、优化MySQLServer、磁盘I/O问题、应用优化等。管理维护篇主要适合于数据库管理员,内容包括MySQL高级安装和升级、MySQL中的常用工具、MySQL日志、备份与恢复、MySQL权限与安全、MySQL复制、MySQLCluster、MySQL常见问题和应用技巧等。 《深入浅出MySQL数据库开发、优化与管理维护》的作者都是MySQL方面的资深DBA。《深入浅出MySQL数据库开发、优化与管理维护》不但融入了他们丰富的工作经验和多年的使用心得,还提供了大量来自工作现场的实例,具有很强的实战性和可操作性。 《深入浅出MySQL数据库开发、优化与管理维护》适用于数据库管理人员、数据库开发人员、系统维护人员、数据库初学者及其他数据库从业人员,也可以作为大中专院校相关专业师生的参考用书和相关培训机构的培训教材。 作者简介唐汉明网易公司技术部DBA组经理。2000年加入网易公司,历任技术部高级DBA、软件开发组经理、DBA组经理等职位,负责多个大型核心数据库的管理维护,并作为核心成员参加了许多重要项目的设计实施,在数据库开发及管理维护等方面具有丰富的经验。 翟振兴网易公司技术部高级DBA,具有OracleOCP认证。曾参与某省级电力集团营销MIS系统的设计与开发工作,后逐渐转向数据库管理维护领域。加入网易公司后,负责公司多个核心数据库的管理维护工作,在数据库优化、开发支持等方面,积累了丰富的经验。 兰丽华网易公司技术部高级DBA,具有OracleOCP和IBMDB2DBA认证。曾任职于某大型国企,作为核心成员参与上海税务项目的开发,该项目被列为2004年上海市科技成果。加入网易公司后,负责多个核心数据库的管理维护工作,在数据库优化和SQL调优方面具有丰富经验。 关宝军网易技术部高级DBA。曾从事电信行业大型BOSS系统的开发及数据库管理维护工作。加入网易公司后,负责多个重要数据库管理维护,并参与了公司多个重要项目的计划、开发及实施。在数据库性能优化、问题诊断、集群技术应用等方面有丰富的实践经验。 申宝柱网易公司技术部高级DBA,具有OracleOCP认证。曾参与某著名公司大型医院管理系统的开发工作,后致力于数据库方向的应用实践。加入网易公司后,先后负责商务智能方面的开发和大型数据库的管理维护,在数据仓库建设和数据挖掘等方面有丰富的项目经验。 编辑推荐从开发、优化和管理维护3个角度逐步深入,融合了资深专家金戈铁马年工作实践的积累和经验,不但总结了应用MySQL数据库时遇到的各种问题及其解决办法,还强调了开发人员和数据库人员必备的知识、技能。 目录第1部分 基础篇 第1章 MySQL的安装与配置 3 1.1 MySQL的下载 3 1.1.1 在Windows平台下下载MySQL 4 1.1.2 在Linux平台下下载MySQL 4 1.2 MySQL的安装 7 1.2.1 在Windows平台下安装MySQL 7 1.2.2 在Linux平台下安装MySQL 11 1.3 MySQL的配置 12 1.3.1 Windows平台下配置MySQL 12 1.3.2 Linux平台下配置MySQL 20 1.4 启动和关闭MySQL服务 20 1.4.1 在Windows平台下启动和关闭MySQL服务 21 1.4.2 在Linux平台下启动和关闭MySQL服务 22 1.5 小结 23 第2章 SQL基础 25 2.1 SQL简介 25 2.2 (My)SQL使用入门 25 2.2.1 SQL分类 25 2.2.2 DDL语句 26 2.2.3 DML语句 35 2.2.4 DCL语句 51 2.3 帮助的使用 52 2.3.1 按照层次看帮助 53 2.3.2 快速查阅帮助 54 2.3.3 常用的网络资源 55 2.4 小结 55 第3章 MySQL支持的数据类型 57 3.1 数值类型 57 3.2 日期时间类型 64 3.3 字符串类型 71 3.3.1 CHAR和VARCHAR类型 72 3.3.2 BINARY和VARBINARY类型 72 3.3.3 ENUM类型 73 3.3.4 SET类型 74 3.4 小结 74 第4章 MySQL中的运算符 77 4.1 算术运算符 77 4.2 比较运算符 78 4.3 逻辑运算符 82 4.4 位运算符 83 4.5 运算符的优先级 85 4.6 小结 86 第5章 常用函数 87 5.1 字符串函数 87 5.2 数值函数 90 5.3 日期和时间函数 93 5.4 流程函数 97 5.5 其他常用函数 100 5.6 小结 103 第6章 图形化工具的使用 105 6.1 MySQLAdministrator 105 6.1.1 连接管理 106 6.1.2 健康检查 107 6.1.3 备份管理 108 6.1.4 Catalogs 109 6.2 MySQLQueryBrower 110 6.3 phpMyAdmin 111 6.3.1 数据库管理 112 6.3.2 数据库对象管理 113 6.3.3 权限管理 113 6.3.4 导入导出数据 114 6.4 小结 116 第2部分 开发篇 第7章 表类型(存储引擎)的选择 119 7.1 MySQL存储引擎概述 119 7.2 各种存储引擎的特性 122 7.2.1 MyISAM 122 7.2.2 InnoDB 124 7.2.3 MEMORY 129 7.2.4 MERGE 131 7.3 如何选择合适的存储引擎 134 7.4 小结 135 第8章 选择合适的数据类型 137 8.1 CHAR与VARCHAR 137 8.2 TEXT与BLOB 138 8.3 浮点数与定点数 142 8.4 日期类型选择 145 8.5 小结 145 第9章 字符集 147 9.1 字符集概述 147 9.2 Unicode简述 147 9.3 汉字及一些常见字符集 149 9.4 怎样选择合适的字符集 150 9.5 MySQL支持的字符集简介 150 9.6 MySQL字符集的设置 152 9.6.1 服务器字符集和校对规则 152 9.6.2 数据库字符集和校对规则 153 9.6.3 表字符集和校对规则 154 9.6.4 列字符集和校对规则 154 9.6.5 连接字符集和校对规则 154 9.7 字符集的修改步骤 155 9.8 小结 156 第10章 索引的设计和使用 157 10.1 索引概述 157 10.2 设计索引的原则 158 10.3 BTREE索引与HASH索引 159 10.4 小结 161 第11章 视图 163 11.1 什么是视图 163 11.2 视图操作 163 11.2.1 创建或者修改视图 163 11.2.2 删除视图 165 11.2.3 查看视图 166 11.3 小结 167 第12章 存储过程和函数 169 12.1 什么是存储过程和函数 169 12.2 存储过程和函数的相关操作 169 12.2.1 创建、修改存储过程或者函数 169 12.2.2 删除存储过程或者函数 174 12.2.3 查看存储过程或者函数 174 12.2.4 变量的使用 176 12.2.5 定义条件和处理 177 12.2.6 光标的使用 180 12.2.7 流程控制 181 12.3 小结 185 第13章 触发器 187 13.1 创建触发器 187 13.2 删除触发器 190 13.3 查看触发器 190 13.4 触发器的使用 192 13.5 小结 193 第14章 事务控制和锁定语句 195 14.1 LOCKTABLE和UNLOCKTABLE 195 14.2 事务控制 196 14.3 分布式事务的使用 202 14.3.1 分布式事务的原理 202 14.3.2 分布式事务的语法 203 14.3.3 存在的问题 204 14.4 小结 208 第15章 SQL中的安全问题 209 15.1 SQL注入简介 209 15.2 应用开发中可以采取的应对措施 210 15.2.1 PrepareStatement+Bind-variable 210 15.2.2 使用应用程序提供的转换函数 211 15.2.3 自己定义函数进行校验 211 15.3 小结 212 第16章 SQLMode及相关问题 213 16.1 MySQLSQLMode简介 213 16.2 常用的SQLMode 218 16.3 SQLMode在迁移中如何使用 219 16.4 小结 220 第3部分 优化篇 第17章 常用SQL技巧和常见问题 223 17.1 正则表达式的使用 223 17.2 巧用RAND()提取随机行 226 17.3 利用GROUPBY的WITHROLLUP子句做统计 227 17.4 用BITGROUPFUNCTIONS做统计 229 17.5 数据库名、表名大小写问题 231 17.6 使用外键需要注意的问题 232 17.7 小结 233 第18章 SQL优化 235 18.1 优化SQL语句的一般步骤 235 18.1.1 通过showstatus命令了解各种SQL的执行频率 235 18.1.2 定位执行效率较低的SQL语句 236 18.1.3 通过EXPLAIN分析低效SQL的执行计划 236 18.1.4 确定问题并采取相应的优化措施 238 18.2 索引问题 239 18.2.1 索引的存储分类 239 18.2.2 MySQL如何使用索引 239 18.2.3 查看索引使用情况 244 18.3 两个简单实用的优化方法 245 18.3.1 定期分析表和检查表 245 18.3.2 定期优化表 246 18.4 常用SQL的优化 247 18.4.1 大批量插入数据 247 18.4.2 优化INSERT语句 249 18.4.3 优化GROUPBY语句 249 18.4.4 优化ORDERBY语句 250 18.4.5 优化嵌套查询 250 18.4.6 MySQL如何优化OR条件 252 18.4.7 使用SQL提示 254 18.5 小结 256 第19章 优化数据库对象 257 19.1 优化表的数据类型 257 19.2 通过拆分提高表的访问效率 259 19.3 逆规范化 260 19.4 使用中间表提高统计查询速度 261 19.5 小结 262 第20章 锁问题 263 20.1 MySQL锁概述 263 20.2 MyISAM表锁 263 20.2.1 查询表级锁争用情况 264 20.2.2 MySQL表级锁的锁模式 264 20.2.3 如何加表锁 265 20.2.4 并发插入(ConcurrentInserts) 268 20.2.5 MyISAM的锁调度 269 20.3 InnoDB锁问题 270 20.3.1 背景知识 270 20.3.2 获取InnoDB行锁争用情况 272 20.3.3 nnoDB的行锁模式及加锁方法 273 20.3.4 InnoDB行锁实现方式 277 20.3.5 间隙锁(Next-Key锁) 281 20.3.6 恢复和复制的需要,对InnoDB锁机制的影响 282 20.3.7 InnoDB在不同隔离级别下的一致性读及锁的差异 287 20.3.8 什么时候使用表锁 288 20.3.9 关于死锁 288 20.4 小结 295 第21章 优化MySQLServer 297 21.1 查看MySQLServer参数 297 21.2 影响MySQL性能的重要参数 300 21.2.1 key_buffer_size的设置 301 21.2.2 table_cache的设置 303 21.2.3 innodb_buffer_pool_size的设置 305 21.2.4 innodb_flush_log_at_trx_commit的设置 306 21.2.5 innodb_additional_mem_pool_size的设置 306 21.2.6 innodb_lock_wait_timeout的设置 307 21.2.7 innodb_support_xa的设置 307 21.2.8 innodb_log_buffer_size的设置 307 21.2.9 innodb_log_file_size的设置 308 21.3 小结 308 第22章 磁盘I/O问题 309 22.1 使用磁盘阵列 309 22.1.1 常见RAID级别及其特性 309 22.1.2 如何选择RAID级别 310 22.1.3 虚拟文件卷或软RAID 310 22.2 使用SymbolicLinks分布I/O 310 22.3 禁止操作系统更新文件的atime属性 311 22.4 用裸设备(RawDevice)存放InnoDB的共享表空间 312 22.5 小结 312 第23章 应用优化 313 23.1 使用连接池 313 23.2 减少对MySQL的访问 313 23.2.1 避免对同一数据做重复检索 313 23.2.2 使用查询缓存 314 23.2.3 增加CACHE层 315 23.3 负载均衡 315 23.3.1 利用MySQL复制分流查询操作 315 23.3.2 采用分布式数据库架构 316 23.4 其他优化措施 316 23.5 小结 316 第4部分 管理维护篇 第24章 MySQL高级安装和升级 319 24.1 Linux/UNIX平台下的安装 319 24.1.1 安装包比较 319 24.1.2 安装RPM包 320 24.1.3 安装二进制包 320 24.1.4 安装源码包 321 24.1.5 参数设置方法 322 24.2 源码包安装的性能考虑 323 24.2.1 去掉不需要的模块 323 24.2.2 只选择要使用的字符集 324 24.2.3 使用静态编译以提高性能 324 24.3 升级MySQL 324 24.4 MySQL降级 326 24.5 小结 326 第25章 MySQL中的常用工具 327 25.1 mysql(客户端连接工具) 327 25.1.1 连接选项 327 25.1.2 客户端字符集选项 330 25.1.3 执行选项 331 25.1.4 格式化选项 332 25.1.5 错误处理选项 333 25.2 myisampack(MyISAM表压缩工具) 336 25.3 mysqladmin(MySQL管理工具) 338 25.4 mysqlbinlog(日志管理工具) 339 25.5 mysqlcheck(MyISAM表维护工具) 345 25.6 mysqldump(数据导出工具) 346 25.7 mysqlhotcopy(MyISAM表热备份工具) 350 25.8 mysqlimport(数据导入工具) 352 25.9 mysqlshow(数据库对象查看工具) 352 25.10 perror(错误代码查看工具) 355 25.11 replace(文本替换工具) 356 25.12 小结 357 第26章 MySQL日志 359 26.1 错误日志 359 26.2 二进制日志 360 26.2.1 日志的位置和格式 360 26.2.2 日志的读取 360 26.2.3 日志的删除 361 26.2.4 其他选项 364 26.3 查询日志 365 26.3.1 日志的位置和格式 365 26.3.2 日志的读取 365 26.4 慢查询日志 366 26.4.1 文件位置和格式 366 26.4.2 日志的读取 366 26.4.3 其他选项 368 26.5 小结 368 第27章 备份与恢复 371 27.1 备份/恢复策略 371 27.2 逻辑备份和恢复 371 27.2.1 备份 372 27.2.2 完全恢复 373 27.2.3 基于时间点恢复 374 27.2.4 基于位置恢复 375 27.3 物理备份和恢复 375 27.3.1 冷备份 375 27.3.2 热备份 375 27.4 表的导入导出 378 27.4.1 导出 378 27.4.2 导入 383 27.5 小结 386 第28章 MySQL权限与安全 387 28.1 MySQL权限管理 387 28.1.1 权限系统的工作原理 387 28.1.2 权限表的存取 387 28.1.3 账号管理 391 28.2 MySQL安全问题 401 28.2.1 操作系统相关的安全问题 401 28.2.2 数据库相关的安全问题 404 28.3 其他安全设置选项 423 28.3.1 old-passwords 423 28.3.2 safe-user-create 424 28.3.3 secure-auth 425 28.3.4 skip-grant-tables 426 28.3.5 skip-network 426 28.3.6 skip-show-database 427 28.4 小结 428 第29章 MySQL复制 429 29.1 安装配置 429 29.2 主要复制启动选项 433 29.2.1 log-slave-updates 433 29.2.2 master-connect-retry 433 29.2.3 read-only 433 29.2.4 指定复制的数据库或者表 435 29.2.5 slave-skip-errors 437 29.3 日常管理维护 437 29.3.1 查看从服务器状态 437 29.3.2 主从服务器同步维护 438 29.3.3 从服务器复制出错的处理 439 29.3.4 logevententryexceededmax_allowed_packet的处理 441 29.3.5 多主复制时的自增长变量冲突问题 441 29.3.6 查看从服务器的复制进度 444 29.4 切换主从服务器 446 29.5 小结 447 第30章 MySQLCluster 449 30.1 MySQLCluster架构 449 30.2 MySQLCluster的配置 450 30.2.1 MySQLCluster的版本支持 450 30.2.2 管理节点配置步骤 451 30.2.3 SQL节点和数据节点的配置 452 30.3 开始使用Cluster 453 30.3.1 Cluster的启动 453 30.3.2 Cluster的测试 455 30.3.3 Cluster的关闭 459 30.4 维护Cluster 460 30.4.1 数据备份 460 30.4.2 数据恢复 461 30.4.3 日志管理 463 30.5 小结 466 第31章 MySQL常见问题和应用技巧 467 31.1 忘记MySQL的root密码 467 31.2 如何处理MyISAM存储引擎的表损坏 468 31.2.1 方法一 468 31.2.2 方法二 469 31.3 MyISAM表超过4GB无法访问的问题 469 31.4 数据目录磁盘空间不足的问题 470 31.4.1 对于MyISAM存储引擎的表 470 31.4.2 对于InnoDB存储引擎的表 471 31.5 DNS反向解析的问题 471 31.6 mysql.sock丢失后如何连接数据库 472 31.7 同一台服务器运行多个MySQL数据库 472 31.8 客户端怎么访问内网数据库 473 31.9 小结 476 …… |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。