自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(170)
  • 资源 (20)
  • 收藏
  • 关注

原创 redis-底层实现原理

本文章来源于:https://github.com/Zeb-D/my-review ,请star 强力支持,你的支持,就是我的动力。背景redis的快除了表面上的内存操作、单线程无竞争,其实底层不同的数据结构实现做了很大的调优;不同的操作类型也做了不同的内存优化;docker run -p 6379:6379 -v /data/redis/data:/data:rw --name ydRedis -d redis:4.0.8 redis-server --appendonly yes --prot

2022-03-20 11:00:11 13159 10

原创 IT架构师学习过程

https://github.com/Zeb-D/my-review架构师成长之路,系统性学习:哪里不会就系统性学哪里! 让我们一起 ???? ???? ????Star勉励吧各知识点目录图数据存储 不只是数据库,更多的是数据存储HBaseMySQLRedistidbSQL练习题分布式 存放了各个分布式理论知识GoLang 职业上第二门语言JavaJava设计模式 23种设计模式jdk源码分析jvmspri

2022-01-23 11:28:48 15071 1

原创 学习方法论与相关建议

本文章来源于:https://github.com/Zeb-D/my-review ,请star 强力支持,你的支持,就是我的动力。文章目录@[toc]背景背景分析如何防止自己变笨如何提高自己学习效率费曼学习法十步学习法工作原则生活与工作准则背景学了这么专业知识,无论是业务时间,还是工作时间。如果被问下你到底学了什么,短时间靠记忆力还能勉强撮合着回答上,几个月后谁能辩雌雄?工作或业余碰到问题能知道怎么解决吗?还是坚持熟能生巧,可现实的信息杂志太多,这未免投入成本过多?生活与工作应该要如何开展?背景分

2020-08-30 14:30:16 14121

原创 Protobuf详解

本文章来源于:https://github.com/Zeb-D/my-review ,请star 强力支持,你的支持,就是我的动力。文章目录简介Protobuf如何使用概念定义protobuf**编译protobuf**协议编码与解码grpc何时会pb编码手动本地调试协议编码**protobuf协议核心**可选的`wire type`:Varints 编码Signed Integersprotobuf协议解析走进源码编码链路解码链路简介不管什么编程语言涉及到跨进程通信有不同的通信协议,如熟知的网络通信

2020-06-21 21:20:43 19094

原创 Redis——redis能做干什么

最近阅读了《redis设计与实现》,这是一本比较枯燥的书,毕竟涉及到redis底层数据结构。我写本文章的目的,主要围绕redis设计与实现这本书整体的一个印象,然后梳理了这本书整体思路:为什么要选择Redis:介绍Redis的使用场景与使用Redis的原因;Redis常用命令总结:包括时间复杂度总结与具体数据类型在Redis内部使用的数据结构;Redis的高级功能:包括持久化、复制、哨兵...

2018-07-23 20:32:37 35357 2

原创 WPF 使用 XmlDataProvider 提供数据

本文章来源于:https://github.com/Zeb-D/my-review ,请star 强力支持,你的支持,就是我的动力。[TOC]概述HBase作为NoSQL的一员,在性能上不如memcached和redis,但是持久化存储方面比内存NoSQL强。作为文档型NoSQL在分布式存储上比mongo做sharding和MapReduce分析方便多。HBase是一个分布式存储、数据库...

2021-03-06 01:00:57 13824 1

原创 Write-Ahead-Log-File-Format

本文章来源于:https://github.com/Zeb-D/my-review ,请star 强力支持,你的支持,就是我的动力。[TOC]OverviewWrite ahead log (WAL) serializes memtable operations to persistent medium as log files. In the event of a failure, WA...

2021-02-04 03:07:17 13394

原创 架构师的感悟--过度忙碌使你落后

本文章来源于:https://github.com/Zeb-D/my-review ,请star 强力支持,你的支持,就是我的动力。[TOC]“提出问题”难于“解决问题”作为技术人员,我们已经习惯于作为问题的解决者给出设计方案,而很少以问题提出者的身份去思考设计方案。团队中常见的典型矛盾,就是产品团队和研发团队之间的矛盾。作为研发团队,我们常吐槽产品团队的需求不合理、不懂技术等。其实我们可...

2021-02-04 02:56:45 13465

原创 tidb数据库隔离级别剖析

本文章来源于:https://github.com/Zeb-D/my-review ,请star 强力支持,你的支持,就是我的动力。[TOC]前言在线应用业务中,数据库是一个非常重要的组成部分,特别是现在的微服务架构为了获得水平扩展能力,我们倾向于将状态都存储在数据库中,这要求数据库能够正确、高性能处理请求,但这是一个几乎不可能达到的要求,所以数据库的设计者们定义了隔离级别这一个概念,在高...

2021-02-04 02:56:45 13471

原创 ToB 服务的交付能力优化

本文章来源于:https://github.com/Zeb-D/my-review ,请star 强力支持,你的支持,就是我的动力。[TOC]ToB 服务交付的方式分为公有云部署和私有化部署两种。其中,对成本敏感的中小企业往往采用公有云部署的方式,从而尽量减少成本。客单价较高的大型企业、政府、银行和事业单位,考虑到数据隐私、安全、合规等要求,往往采用私有化部署的方式。基于对公司营收的巨大贡献...

2021-02-04 02:56:45 13472

原创 自我成长与团队管理——一些总结

本文章来源于:https://github.com/Zeb-D/my-review ,请star 强力支持,你的支持,就是我的动力。文章目录@[toc]背景自身成长学好技术学好英语团队成长团队建设团队文化建设背景最近身边的同事私下向我交流心声,在学习方面,如没时间学习、不知道怎么找资源学习、不知道怎么学习、平时接触的技术能力没锻炼、以前掌握的技术变成不熟悉了;在工作方面,如经常性开会,方案一直评审没时间专心敲代码;业务方面相似度高如就是一些CRUD;跨部门协同效率低;协调各方面的资源很累,如何提高

2020-07-19 16:40:38 19257

原创 排查问题流程

本文章来源于:https://github.com/Zeb-D/my-review ,请star 强力支持,你的支持,就是我的动力。[TOC]也有同事经常反馈遇到一些棘手的问题不知道怎么去排查,排查问题的思路很重要,希望自己遇到问题时,也能够从容、高效地定位到根因。因此,我就与你说说我在应急排错方面积累的心得。这都是我多年自己总结出来的,希望对你有所帮助。当然了,也希望和大家一起说说自己平时...

2020-07-19 10:38:25 13927

原创 09-Job与CronJob

[toc]Deployment、StatefulSet,以及 DaemonSet 这三个编排概念。你有没有发现它们的共同之处呢?实际上,它们主要编排的对象,都是“在线业务”,即:Long Running Task(长作业)。比如,我在前面举例时常用的 Nginx、Tomcat,以及 MySQL 等等。这些应用一旦运行起来,除非出错或者停止,它的容器进程会一直保持在 Running 状态。但...

2020-07-15 06:39:27 13473

原创 04-kubernetes搭建

[toc]kubeadm 一键部署在理解了容器技术之后,为什么不用容器部署 Kubernetes 呢?这样,我只要给每个 Kubernetes 组件做一个容器镜像,然后在每台宿主机上用 docker run 指令启动这些组件容器,部署不就完成了吗?事实上,在 Kubernetes 早期的部署脚本里,确实有一个脚本就是用 Docker 部署 Kubernetes 项目的,这个脚本相比于 S...

2020-07-15 06:39:27 13494

原创 10-声明式API

[toc]命令式命令行操作很多 Kubernetes 的 API 对象,有的是用来描述应用,有的则是为应用提供各种各样的服务。但是,无一例外地,为了使用这些 API 对象提供的能力,你都需要编写一个对应的 YAML 文件交给 Kubernetes。这个 YAML 文件,正是 Kubernetes 声明式 API 所必须具备的一个要素。不过,是不是只要用 YAML 文件代替了命令行操作,就是...

2020-07-15 06:39:27 14599 2

原创 05-深入解析pod

[toc]Pod的由来在学习和使用 Kubernetes 项目的过程中,已经不止一次地想要问这样一个问题:为什么我们会需要 Pod?“Namespace 做隔离,Cgroups 做限制,rootfs 做文件系统”这样的“三句箴言”可以朗朗上口了,为什么 Kubernetes 项目又突然搞出一个 Pod 来呢?容器的本质到底是什么?容器的本质是进程。容器,就是未来云计算系统中的进程;容器...

2020-07-15 06:39:27 13506

原创 12-Operator工作原理

[toc]Kubernetes 项目中的大部分编排对象(比如 Deployment、StatefulSet、DaemonSet,以及 Job),“有状态应用”的管理方法, Kubernetes 添加自定义 API 对象和编写自定义控制器。可能你已经感觉到,在 Kubernetes 中,管理“有状态应用”是一个比较复杂的过程,尤其是编写 Pod 模板的时候,总有一种“在 YAML 文件里编程序...

2020-07-15 06:39:27 13851

原创 07-深入理解StatefulSet

[toc]背景Deployment 实际上并不足以覆盖所有的应用编排问题。造成这个问题的根本原因,在于 Deployment 对应用做了一个简单化假设。它认为,一个应用的所有 Pod,是完全一样的。所以,它们互相之间没有顺序,也无所谓运行在哪台宿主机上。需要的时候,Deployment 就可以通过 Pod 模板创建新的 Pod;不需要的时候,Deployment 就可以“杀掉”任意一个 ...

2020-07-15 06:39:27 13608

原创 06-kuberneter控制器模式

[toc]编排概念Pod 这个看似复杂的 API 对象,实际上就是对容器的进一步抽象和封装而已。说得更形象些,“容器”镜像虽然好用,但是容器这样一个“沙盒”的概念,对于描述应用来说,还是太过简单了。这就好比,集装箱固然好用,但是如果它四面都光秃秃的,吊车还怎么把这个集装箱吊起来并摆放好呢?所以,Pod 对象,其实就是容器的升级版。它对容器进行了组合,添加了更多的属性和字段。这就好比给集装...

2020-07-15 06:39:27 13545

原创 kubernetes--核心概念介绍

本文章来源于:https://github.com/Zeb-D/my-review ,请star 强力支持,你的支持,就是我的动力。[TOC]云计算、容器化以及容器编排是 DevOps 中最重要的发展趋势,无论你是数据科学家、软件开发者还是产品经理,了解 Docker 和 Kubernetes 的基本概念总是有好处的,二者可以帮助你与他人协作、部署应用并提升你对雇主的价值。本文将会覆盖到一...

2020-07-15 06:39:27 13488

原创 08-DaemonSet

[toc]StatefulSet 其实就是对现有典型运维业务的容器化抽象。也就是说,你一定有方法在不使用 Kubernetes、甚至不使用容器的情况下,自己 DIY 一个类似的方案出来。但是,一旦涉及到升级、版本管理等更工程化的能力,Kubernetes 的好处,才会更加凸现。比如,如何对 StatefulSet 进行“滚动更新”(rolling update)?很简单。你只要修改 Sta...

2020-07-15 06:39:27 13484

原创 13-PV与PVC

本文章来源于:https://github.com/Zeb-D/my-review ,请star 强力支持,你的支持,就是我的动力。[toc]容器化一个应用比较麻烦的地方,莫过于对其“状态”的管理。而最常见的“状态”,又莫过于存储状态了。Kubernetes 项目处理容器持久化存储的核心原理StatefulSet 管理存储状态的文章,里面有说到过的Persistent Volume(PV...

2020-07-15 06:39:27 13459

原创 JVM之new对象和定位对象

在Java虚拟机中如何创建一个对象,如何定位到一个对象地址后使用。我们直接来说说,Hello hello = new Hello(),这句话在JVM发生了什么?在我们深入这个话题前,请仔细理解JVM的内存区域:class符号引用、分配内存、同步处理、初始化、初始化对象头、对象的访问定位。...

2020-07-15 06:39:27 13043

原创 11-RBAC基于角色的权限控制

[toc]控制器模式看起来好像也不难嘛,我能不能自己写一个编排对象呢?答案当然是可以的。而且,这才是 Kubernetes 项目最具吸引力的地方。在互联网级别的大规模集群里,Kubernetes 内置的编排对象,很难做到完全满足所有需求。所以,很多实际的容器化工作,都会要求你设计一个自己的编排对象,实现自己的控制器模式。而在 Kubernetes 项目里,我们可以基于插件机制来完成这些工...

2020-07-15 06:39:27 13408 2

原创 JVM之内存布局与对象大小

本文章来源于:https://github.com/Zeb-D/my-review ,请star 强力支持,你的支持,就是我的动力。Java对象内存布局[TOC]在Java中基本数据类型的大小,例如int类型占4个字节、long类型占8个字节,那么Integer对象和Long对象会占用多少内存呢?本文结合JVM相关的书籍以及网上的大神,从基本数据类型到对应的包装类型、再到引用类型,也...

2020-07-15 06:39:27 13322

原创 核心原理--golang-runtime

本文章来源于:https://github.com/Zeb-D/my-review ,请star 强力支持,你的支持,就是我的动力。[TOC]为什么去了解Runtime?解决疑难杂症&&优化好奇心技术深度的一种运行时到底是个什么东西?Go的调度为什么说是轻量的? Go调度都发生了啥? Go的网络和锁会不会阻塞线程? 什么时候会阻塞线程?Go的对象在内存中是怎样...

2020-07-15 03:39:53 13670

原创 java-io总结

文章来源:https://github.com/Zeb-D/my-review ,请star 强力支持。按照不同的分类方式,可以将把流分为不同的类型。常用的分类有三种:按流的流向划分按操作单元划分按流的角色划分按流的流向划分,可以分为输入流和输出流输入流:将数据从外设或外村(如键盘、鼠标、文件等)传递到应用程序的称为输入流(Input Stream);输出流:将数据从应用程序传...

2020-07-15 03:39:53 13083 1

原创 03-kubernetes的本质

一个“容器”,实际上是一个由 Linux Namespace、Linux Cgroups 和 rootfs 三种技术构建出来的进程的隔离环境。从这个结构中我们不难看出,一个正在运行的 Linux 容器,其实可以被“一分为二”地看待:一组联合挂载在 /var/lib/docker/aufs/mnt 上的 rootfs,这一部分我们称为“容器镜像”(Container Image),是容器的静态视...

2020-06-14 15:42:15 13433

原创 02-容器的基础

[toc]容器本身没有价值,有价值的是“容器编排”。进程容器其实是一种沙盒技术。顾名思义,沙盒就是能够像一个集装箱一样,把你的应用“装”起来的技术。这样,应用与应用之间,就因为有了边界而不至于相互干扰;而被装进集装箱的应用,也可以被方便地搬来搬去,这不就是 PaaS 最理想的状态嘛。不过,这两个能力说起来简单,但要用技术手段去实现它们,可能大多数人就无从下手了。由于计算机只认识 0...

2020-06-14 15:42:15 13572

原创 01-容器兴起的缘由

就在对开源 PaaS 项目落地的不断尝试中,这个领域的从业者们发现了 PaaS 中最为棘手也最亟待解决的一个问题:究竟如何给应用打包?遗憾的是,无论是 Cloud Foundry、OpenShift,还是 Clodify,面对这个问题都没能给出一个完美的答案,反而在竞争中走向了碎片化的歧途。而就在这时,一个并不引人瞩目的 PaaS 创业公司 dotCloud,却选择了开源自家的一个容器项目 Do...

2020-06-14 15:42:15 13459

原创 00-怎么实现容器技术的提问

本文章来源于:https://github.com/Zeb-D/my-review ,请star 强力支持,你的支持,就是我的动力。[TOC]我与容器打交道的这些年,一直在与关注容器生态的工程师们交流,并经常探讨容器在落地过程中遇到的问题。从这些交流中,我发现总有很多相似的问题被反复提及,比如:为什么容器里只能跑“一个进程”?为什么我原先一直在用的某个 JVM 参数,在容器里就不好使...

2020-06-14 15:42:15 13243

原创 grpc 超时传递原理

本文章来源于:https://github.com/Zeb-D/my-review ,请star 强力支持,你的支持,就是我的动力。[TOC]引子有个业务方反馈说日志中偶尔出现 xorm 抛出来的“context deadline exceeded”的报错,想咨询下是什么原因。业务方实现的 gRPC Handler 大概代码如下:func (s Svc) BizHandler(ctx c...

2020-04-23 14:08:49 13770

原创 redis-4.0引进多线程

本文章来源于:https://github.com/Zeb-D/my-review ,请star 强力支持,你的支持,就是我的动力。[TOC]Redis 4.0+引进多线程模型为什么这么设计(Why's THE Design)是一系列关于计算机领域中程序设计决策的文章,我们在这个系列的每一篇文章中都会提出一个具体的问题并从不同的角度讨论这种设计的优缺点、对具体实现造成的影响。...

2020-02-17 07:28:55 13397 1

原创 Unsafe应用详解

本文章来源于:https://github.com/Zeb-D/my-review ,请star 强力支持,你的支持,就是我的动力。[TOC]背景平时在啃并发库会发现一些底层的影子,虽然J.U.C并发库 各个类有不同的逻辑,但具体行为支持还是得靠sun.misc.Unsafe,这个类威力无穷;Unsafe是位于sun.misc包下的一个类,主要提供一些用于执行低级别、不安全操作的方法,如直...

2020-02-17 07:28:55 13364

原创 alibaba-interview

各大IT社区精选阿里面经(附回答)面试必看阿里面试经历及总结(数据研发、Java研发方向)记2017.3.21阿里面试经历,java方向阿里面试经历JAVA总结阿里面试回来,想和Java程序员谈一谈一名十年Java程序员回忆阿里面试经历——揭开阿里面试的“遮羞布”云栖社区系列文章:如何拿到阿里技术offer如何拿到阿里技术offer:从《我为什么来到支付宝》体味阿里社会招聘...

2019-12-07 15:38:26 13061

原创 Java代码与计算机内核

本文章来源于:https://github.com/Zeb-D/my-review ,请star 强力支持,你的支持,就是我的动力。[TOC]本文导读肉眼看计算机是由CPU、内存、显示器这些硬件设备组成,但大部分人从事的是软件开发工作。计算机底层原理就是连通硬件和软件的桥梁,理解计算机底层原理才能在程序设计这条路上越走越快,越走越轻松。从操作系统层面去理解高级编程语言的执行过程,会发现好...

2019-11-23 14:18:52 13172

原创 操作系统的内核态和用户态

本文章来源于:https://github.com/Zeb-D/my-review ,请star 强力支持,你的支持,就是我的动力。[TOC]在CPU的所有指令中,有一些指令是非常危险的,如果错用,将导致整个系统崩溃。比如:清内存、设置时钟等。如果所有的程序都能使用这些指令,那么你的系统一天死机n回就不足为奇了。所以,CPU将指令分为特权指令和非特权指令,对于那些危险的指令,只允许操作系统及...

2019-11-23 14:18:52 13458

原创 原理分析--TCP粘包与拆包

本文章来源于:https://github.com/Zeb-D/my-review ,请star 强力支持,你的支持,就是我的动力。[TOC]一、TCP粘包、拆包背景假设客户端分别发送了两个数据包D1和D2给服务端,由于服务端一次读取到字节数是不确定的,故可能存在以下四种情况:服务端分两次读取到了两个独立的数据包,分别是D1和D2,没有粘包和拆包服务端一次接受到了两个数据包,D1和D...

2019-11-04 03:32:21 13102

原创 原理分析--TCP大传输下延迟分析

本文章来源于:https://github.com/Zeb-D/my-review ,请star 强力支持,你的支持,就是我的动力。[TOC]背景在多个数据中心避免不了交互,如全量数据同步等类似涉及到网络传输的问题。简单点,各个服务端点进行不同大小数据包传输,按理说数据包大小与时间成线性相关(已排除业务层处理能力);前言本文希望解析清楚,当我们在代码中写下 socket.setSendB...

2019-11-04 03:26:08 14644

原创 go的初步了解

本文章来源于:https://github.com/Zeb-D/my-review ,请star 强力支持,你的支持,就是我的动力。[TOC]一、 Go语言的特点Go语言跟其他的语言例如Java比起来,算得上一门很年轻的语言。Go语言是由Robert Griesemer、Rob Pike和Ken Thompson于2007年在Google开发。并于2009年正式发布。Go语言的设计理念围...

2019-11-04 03:26:08 13049

MySQL技术内幕(第4版).pdf

第一部分 MySQL基础知识 1 第1章 MySQL和SQL 入门 2 1.1 MySQL的用途 2 1.2 示例数据库 4 1.2.1 “美国历史研究会”场景 5 1.2.2 考试记分项目 7 1.2.3 关于示例数据库的说明 7 1.3 数据库基本术语 7 1.3.1 数据库的组织结构 8 1.3.2 数据库查询语言 10 1.3.3 MySQL的体系结构 1 0 1.4 MySQL 11 1.4.1 如何获得示例数据库 12 1.4.2 最低配置要求 12 1.4.3 如何建立和断开与服务器的连接 13 1.4.4 执行SQL语句 15 1.4.5 创建数据库 17 1.4.6 创建数据表 18 1.4.7 如何添加新的数据行 33 1.4.8 将sampdb数据库重设为原来的状态 36 1.4.9 检索信息 37 1.4.10 如何删除或更新现有的数据行 64 1.5 与客户程序MySQL交互的技巧 66 1.5.1 简化连接过程 67 1.5.2 减少输入查询命令时的打字动作 69 1.6 后面各章的学习计划 72 第2章 使用SQL管理数据 73 2.1 MySQL服务器的SQL模式 73 2.2 MySQL标识符语法和命名规则 74 2.3 SQL语句中的字母大小写问题  77 2.4 字符集支持 78 2.4.1 字符集的设定 79 2.4.2 确定可供选用的字符集和当前设置 80 2.4.3  Unicode支持 81 2.5  数据库的选定、创建、删除和变更 82 2.5.1 数据库的选定 82 2.5.2 数据库的创建 82 2.5.3 数据库的删除 83 2.5.4 数据库的变更 83 2.6 数据表的创建、删除、索引和变更 84 2.6.1 存储引擎的特征 84 2.6.2 创建数据表 90 2.6.3 删除数据表 101 2.6.4 为数据表编制索引 101 2.6.5 改变数据表的结构 106 2.7 获取数据库的元数据 108 2.7.1 用SHOW语句获取元数据 109 2.7.2 从INFORMATION_SCHEMA数据库获取元数据 110 2.7.3 从命令行获取元数据 112 2.8 利用联结操作对多个数据表进行检索 113 2.8.1 内联结 114 2.8.2 避免歧义:如何在联结操作中给出数据列的名字 116 2.8.3 左联结和右联结(外联结) 116 2.9 用子查询进行多数据表检索 120 2.9.1 子查询与关系比较操作符 121 2.9.2 IN和NOT IN子查询 122 2.9.3 ALL、ANY和SOME子查询 123 2.9.4 EXISTS和NOT EXISTS子查询 124 2.9.5 与主查询相关的子查询 124 2.9.6 FROM子句中的子查询 124 2.9.7 把子查询改写为联结查询 125 2.10 用UNION语句进行多数据表检索 126 2.11 使用视图 129 2.12 涉及多个数据表的删除和更新操作 133 2.13 事务处理 134 2.13.1 利用事务来保证语句的安全执行 135 2.13.2 使用事务保存点 139 2.13.3 事务的隔离性 139 2.13.4 事务问题的非事务解决方案 140 2.14 外键和引用完整性 143 2.14.1 外键的创建和使用 144 2.14.2 如果不能使用外键该怎么办 149 2.15 使用FULLTEXT索引 150 2.15.1 全文搜索:自然语言模式 151 2.15.2 全文搜索:布尔模式 153 2.15.3 全文搜索:查询扩展模式 154 2.15.4 配置全文搜索引擎 155 第3章 数据类型 156 3.1 数据值的类别 157 3.1.1 数值 157 3.1.2 字符串值 158 3.1.3 日期/时间值 166 3.1.4 坐标值 166 3.1.5 布尔值 166 3.1.6 空值NULL 166 3.2 MySQL的数据类型 166 3.2.1 数据类型概述 167 3.2.2 数据表中的特殊列类型 168 3.2.3 指定列默认值 169 3.2.4 数值数据类型 170 3.2.5 字符串数据类型 176 3.2.6 日期/时间数据类型 189 3.2.7 空间数据类型 196 3.3 MySQL如何处理非法数据值 197 3.4 序列 199 3.4.1 通用AUTO_INCREMENT属性 199 3.4.2 与特定存储引擎有关的AUTO_INCREMENT属性 201 3.4.3 使用AUTO_INCREMENT数据列时的要点 203 3.4.4 使用AUTO_INCREMENT机制时的注意事项 204 3.4.5 如何在不使用AUTO_INCREMENT的情况下生成序列编号 205 3.5 表达式求值和类型转换 207 3.5.1 表达式的编写 207 3.5.2 类型转换 213 3.6 数据类型的选用 220 3.6.1 数据列将容纳什么样的数据 222 3.6.2 数据是否都在某个特定的区间内 224 3.6.3 与挑选数据类型有关的问题是相互影响的 225 第4章 存储程序 227 4.1 复合语句和语句分隔符 228 4.2 存储函数和存储过程 229 4.2.1 存储函数和存储过程的权限 231 4.2.2 存储过程的参数类型 232 4.3 触发器 233 4.4 事件 234 4.5 存储程序和视图的安全性 236 第5章 查询优化 237 5.1 使用索引 237 5.1.1 索引的优点 238 5.1.2 索引的缺点 240 5.1.3 挑选索引 241 5.2 MySQL的查询优化程序 243 5.2.1 查询优化器的工作原理 244 5.2.2 用EXPLAIN 语句检查优化器操作 247 5.3 为提高查询效率而挑选数据类型 252 5.4 有效加载数据 255 5.5 调度和锁定问题 258 5.5.1 改变语句的执行优先级 259 5.5.2 使用延迟插入 259 5.5.3 使用并发插入 260 5.5.4 锁定级别与并发性 260 5.6 系统管理员所完成的优化 261 5.6.1 使用MyISAM键缓存 263 5.6.2 使用查询缓存 264 5.6.3 硬件优化 265 第二部 分 MySQL的编程接口 267 第6章 MySQL程序设计 268 6.1 为什么要自己编写MySQL程序 268 6.2 MySQL应用程序可用的API 271 6.2.1 C API 272 6.2.2 Perl DBI API 272 6.2.3 PHP API 274 6.3 如何挑选API 275 6.3.1 执行环境 275 6.3.2 性能 276 6.3.3 开发时间 278 6.3.4 可移植性 280 第7章 用C语言编写MySQL程序 281 7.1 编译和链接客户程序 282 7.2 连接到服务器 284 7.3 出错消息和命令行选项的处理 287 7.3.1 出错检查 287 7.3.2 实时获取连接参数 290 7.3.3 给MySQL客户程序增加选项处理功能 301 7.4 处理SQL语句 305 7.4.1 处理修改数据行的语句 306 7.4.2 处理有结果集的语句 307 7.4.3 一个通用的语句处理程序 310 7.4.4 另一种语句处理方案 311 7.4.5 mysql_store_result()与mysql_use_result()函数的对比 312 7.4.6 使用结果集元数据 314 7.4.7 对特殊字符和二进制数据进行编码 319 7.5 交互式语句执行程序 322 7.6 怎样编写具备SSL支持的客户程序 323 7.7 嵌入式服务器库的使用 327 7.7.1 编写内建了服务器的应用程序 328 7.7.2 生成应用程序可执行二进制文件 330 7.8 一次执行多条语句 331 7.9 使用服务器端预处理语句 333 第8章 使用Perl DBI编写MySQL程序 343 8.1 Perl脚本的特点 343 8.2 Perl DBI概述 344 8.2.1 DBI数据类型 344 8.2.2 一个简单的DBI脚本 345 8.2.3 出错处理 349 8.2.4 处理修改数据行的语句 352 8.2.5 处理返回结果集的语句 353 8.2.6 在语句字符串引用特殊字符 361 8.2.7 占位符与预处理语句 363 8.2.8 把查询结果绑定到脚本变量 365 8.2.9 设定连接参数 366 8.2.10 调试 369 8.2.11 使用结果集的元数据 372 8.2.12 实现事务处理 376 8.3 DBI脚本实战 377 8.3.1 生成美国历史研究会会员名录 377 8.3.2 发出会费催交通知 382 8.3.3 会员记录项的编辑修改 387 8.3.4 寻找志趣相同的会员 392 8.3.5 把会员名录放到网上 393 8.4 用DBI开发Web应用 396 8.4.1 配置Apache服务器使用CGI脚本 397 8.4.2 CGI.pm模块简介 398 8.4.3 从Web脚本连接MySQL服务器 404 8.4.4 一个基于Web的数据库浏览器 406 8.4.5 考试记分项目:考试分数浏览器 410 8.4.6 美国历史研究会:寻找志趣相同的会员 413 第9章 用PHP编写MySQL程序 418 9.1 PHP概述 419 9.1.1 一个简单的PHP脚本 421 9.1.2 利用PHP库文件实现代码封装 424 9.1.3 简单的数据检索页面 428 9.1.4 处理语句结果 431 9.1.5 测试查询结果里的NULL值 434 9.1.6 使用预处理语句 434 9.1.7 利用占位符来处理带引号的数据值 435 9.1.8 出错处理 437 9.2 PHP脚本实战 438 9.2.1 考试分数的在线录入 438 9.2.2 创建一个交互式在线测验 449 9.2.3 美国历史研究会:会员个人资料的在线修改 454 第三部分 MySQL的系统管理 461 第10章 MySQL系统管理简介 462 10.1 MySQL组件 462 10.2 常规管理 463 10.3 访问控制与安全性 464 10.4 数据库的维护、备份和复制 464 第11章 MySQL的数据目录 466 11.1 数据目录的位置 466 11.2 数据目录的层次结构 468 11.2.1 MySQL服务器如何提供对数据的访问 468 11.2.2 MySQL数据库在文件系统里是如何表示的 469 11.2.3 数据表在文件系统里的表示方式 470 11.2.4 视图和触发器在文件系统里的表示方式 471 11.2.5 SQL语句与数据表文件操作的对应关系 472 11.2.6 操作系统对数据库对象的命名规则有何影响 472 11.2.7 影响数据表最大长度的因素 474 11.2.8 数据目录的结构对系统性能的影响 475 11.2.9 MySQL状态文件和日志文件 477 11.3 重新安置数据目录的内容 479 11.3.1 重新安置工作的具体方法 479 11.3.2 重新安置注意事项 480 11.3.3 评估重新安置的效果 480 11.3.4 重新安置整个数据目录 481 11.3.5 重新安置各个数据库 481 11.3.6 重新安置各个数据表 482 11.3.7 重新安置InnoDB共享表空间 482 11.3.8 重新安置状态文件和日志文件 482 第12章 MySQL数据库系统的日常管理 484 12.1 安装MySQL软件后的初始安防设置 484 12.1.1 为初始MySQL账户设置口令 485 12.1.2 为第二个服务器设置口令 489 12.2 安排MySQL服务器的启动和关停 489 12.2.1 在Unix上运行MySQL服务器 489 12.2.2 在Windows上运行MySQL服务器 493 12.2.3 指定服务器启动选项 495 12.2.4 关闭服务器 497 12.2.5 当你未能连接至服务器时重新获得服务器的控制 497 12.3 对MySQL服务器的连接监听情况进行控制 499 12.4 管理MySQL用户账户 500 12.4.1 高级MySQL账户管理操作 501 12.4.2 对账户授权 503 12.4.3 查看账户的权限 510 12.4.4 撤销权限和删除用户 510 12.4.5 改变口令或重新设置丢失的口令 511 12.5 维护日志文件 512 12.5.1 出错日志 514 12.5.2 常规查询日志 515 12.5.3 慢查询日志 515 12.5.4 二进制日志和二进制日志索引文件 516 12.5.5 中继日志和中继日志索引文件 517 12.5.6 日志数据表的使用 518 12.5.7 日志管理 519 12.6 调整MySQL服务器 524 12.6.1 查看和设置系统变量的值 525 12.6.2 通用型系统变量 528 12.6.3 查看状态变量的值 530 12.7 存储引擎的配置 531 12.7.1 为MySQL服务器挑选存储引擎 531 12.7.2 配置MyISAM存储引擎 533 12.7.3 配置InnoDB存储引擎 536 12.7.4 配置Falcon存储引擎 541 12.8 启用或者禁用LOAD DATA语句的LOCAL能力 541 12.9 国际化和本地化问题 542 12.9.1 设置MySQL服务器的地理时区 542 12.9.2 选择用来显示出错信息的语言 544 12.9.3 配置MySQL服务器的字符集支持 544 12.10 运行多个服务器 545 12.10.1 运行多个服务器的问题 545 12.10.2 配置和编译不同的服务器 547 12.10.3 指定启动选项的决策 548 12.10.4 用于服务器管理的mysqld_multi 549 12.10.5 在Windows系统上运行多个MySQL服务器 550 12.11 升 级MySQL 553 第13章 访问控件和安全 555 13.1 内部安全性:防止未经授权的文件系统访问 555 13.1.1 如何偷取数据 556 13.1.2 保护你的MySQL安装 557 13.2 外部安全性:防止未经授权的网络访问 562 13.2.1 MySQL权限表的结构和内容 562 13.2.2 服务器如何控制客户访问 568 13.2.3 一个关于权限的难题 572 13.2.4 应该回避的权限数据表风险 575 13.3 加密连接的建立 577 第14章 MySQL数据库的维护、备份和复制 582 14.1 数据库预防性维护工作的基本原则 582 14.2  在MySQL服务器运行时维护数据库 583 14.2.1 以只读方式或读/写方式锁定一个或多个数据表 584 14.2.2 以只读方式锁定所有的数据库 586 14.3 预防性维护 587 14.3.1 充分利用MySQL服务器的自动恢复能力 587 14.3.2 定期进行预防性维护 588 14.4 制作数据库备份 589 14.4.1 用mysqldump程序制作文本备份 590 14.4.2 制作二进制数据库备份 593 14.4.3 备份InnoDB或Faclcon数据表 595 14.5 把数据库复制到另一个服务器 596 14.5.1 使用一个备份文件来复制数据库 596 14.5.2 把数据库从一个服务器复制到另一个 597 14.6 数据表的检查和修复 598 14.6.1 用服务器检查和修复数据表 599 14.6.2 用mysqlcheck程序检查和修复数据表 599 14.6.3 用myisamchk程序检查和修复数据表 600 14.7 使用备份进行数据恢复  603 14.7.1 恢复整个数据库 603 14.7.2 恢复数据表 604 14.7.3 重新执行二进制日志文件里的语句 605 14.7.4 InnoDB存储引擎的自动恢复功能 606 14.8 设置复制服务器 607 14.8.1 复制机制的工作原理 607 14.8.2 建立主从复制关系 609 14.8.3 二进制日志的格式 611 14.8.4 使用复制机制制作备份 612 第四部分 附录 613 附录A 获得并安装有关软件 614 附录B 数据类型指南 630 附录C 操作符与函数用法指南 643 附录D 系统变量、状态变量和用户变量使用指南 705 附录E SQL语法指南 746 附录F MySQL程序指南 823 附录G API指南 887 附录H Perl DBI API指南 930 附录I PHP API指南 953

2017-10-11

深入剖析tomcat(中文版).pdf

这本书是为任何一个使用Java技术进行工作的人而准备的。  假如你是一个servlet/jsp程序员或者一个Tomcat用户,而且对一个servlet容器是如何工作这个问题你感兴趣的话,这本书就是为你准备的。  假如你想加入Tomcat的开发团队的话,这本书就是为你准备的,因为你首先需要学习那些已存在的代码是如何工作的。  假如你从未涉及web开发,但你对一般意义上的软件开发感兴趣的话,你可以在这本书学到一个像Tomcat一样的大型项目是如何进行设计和开发的。  假如你想配置和自定义Tomcat,你也应该读读这本书。 为了理解书中的讨论,你需要了解Java面向对象编程技术以及servlet编程。假如你对这些不熟悉的话,这里有很多书籍可以参考,包括Budi的《Java for the Web with Servlets, JSP, and EJB》。为了让这些材料更容易理解,每一章开始都会有便于理解所讨论主题的必要的背景资料介绍。

2017-09-30

http征求意见文档2616 英文版

The Hypertext Transfer Protocol (HTTP) is an application-level protocol for distributed, collaborative, hypermedia information systems. It is a generic, stateless, protocol which can be used for many tasks beyond its use for hypertext, such as name servers and distributed object management systems, through extension of its request methods, error codes and headers [47]. A feature of HTTP is the typing and negotiation of data representation, allowing systems to be built independently of the data being transferred. 可以从http://www.w3.org/Protocols/HTTP/1.1/rfc2616.pdf下载,

2017-09-30

HTTP权威指南高清中文版.pdf

本书包含21 章,分为5 个逻辑部分(每部分都是一个技术专题),以及8 个很有用 的附录,这些附录包含了参考资料,以及对相关技术的介绍。 第一部分 HTTP:Web 的基础 第二部分 HTTP 结构 第三部分 识别、认证与安全 第四部分 实体、编码和国际化 第五部分 内容发布与分发 第六部分 附录

2017-09-30

Redis实战-带目录完整版.pdf

Redis实战pdf,带完整版的结果目录,carlson 著,黄健宏 译;本书一共由三个部分组成。第一部分对Redis进行了介 绍,说明了Redis的基本使用方法、它拥有的5种数据结构以及操作这5种数据结构的命令,并讲解了如何使用Redis去构建文章展示网站、cookie、购物车、网页缓存、数据库行缓存等一系列程序。第二部分对Redis命令进行了更详细的介绍,并展示了如何使用Redis去构建更为复杂的辅助工具和应用程序,并在最后展示了如何使用Redis去构建一个简单的社交网站。第三部分对Redis用户经常会遇到的一些问题进行了介绍,讲解了降低Redis内存占用的方法、扩展Redis性能的方法以及使用Lua语言...

2017-09-05

Jsp/Servlet3.0 ppt和代码

个人博客http://blog.csdn.net/u014229282/article/details/73928680,相关重点讲解,以代码为主

2017-06-30

Maven-hibernate4

环境:Maven2.2、 hibernate4、Mysql5.6;开始先建个数据库,<property name="hibernate.hbm2ddl.auto">update</property>这里先改为create可以手动创建表 执行Test,然后再改回来(不然会报错).项目比较简单,没有分层式。

2017-05-26

Java设计模式-详细代码

23种Java设计详细代码,对应的设计模式的代码在对应的Package中,可结合本人的ppt更好的了解http://download.csdn.net/detail/u014229282/9850238

2017-05-23

Java设计模式共23种设计模式

23种Java设计模式;想获取更多的代码可在本人资源库下载;本来想免费分享的,可有时候需要下载别人的需要点积分,望了解

2017-05-23

maven-nexus-oss-webapp-1.7.2-bundle.rar

nexus-oss-webapp-1.7.2-bundle.rar,Maven实战,第9章,建立Maven私服仓库软件Nexus

2017-04-27

SSH框架项目

个人博客,整合SSH框架时,所用的项目

2016-08-23

SSH框架整合需要的Jar包

里面包括了struts-2.3.28、spring-framework-4.0.4.RELEASE-dist、hibernate-release-4.3.5.Final,这些Jar是从这里整合的,如果需要详细的单个框架的Jar包,请从官网下

2016-08-23

SSH三大框架整合jar包

三大框架整合(Struts2+Hibernate+Spring4)所需要的jar包,使用详情请关注本人博客之SSH三大框架整合

2016-04-10

网上书城系统代码及开发流程

网上书城系统的整个开发流程

2016-03-31

网上书店系统源码

ASP网上书店系统源码

2016-03-31

urlrewritefilter-4.0.3.jar

使用URL Rewrite 实现网站伪静态

2016-03-29

窗口抖动源码

简单实现 窗口抖动,改Android源码 较一看就懂,简单

2015-05-27

计算器源码

已实现+ - 清零 你还可以继续实现 * /

2015-05-27

数据结构-清华大学严蔚敏PPT.

教材:《数据结构 C语言版 》 严蔚敏 吴伟民 编 著 清华大学出版社 参考文献: 1 《数据结构》 张选平 雷咏梅 编 严蔚敏 审 机械工业出版社 2 《数据结构与算法分析》 Clifford A Shaffer著 张 铭 刘晓丹 译 电子工业出版社 3 《数据结构习题与解析 C语实言版 》 李春葆 清华大学出版社 4 《数据结构与算法》 夏克俭 编著 国防工业出版社 ">教材:《数据结构 C语言版 》 严蔚敏 吴伟民 编 著 清华大学出版社 参考文献: 1 《数据结构》 张选平 雷咏梅 编 严蔚敏 审 机械工业出版社 2 《数据结构与算法分析》 Clifford A Shaffer著 [更多]

2014-09-28

班级管理系统模板

班级管理系统模板

2014-09-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除