北京两年半.net开发要7.5K是不是高了

ssq4706 2012-10-22 05:50:23
面试了几家,打算要的,后来谈到工资,就让我回去等消息,有的直接说给不了这么多,我是不是该降低要求了
...全文
1272 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
gnimgnot 2013-08-27
  • 打赏
  • 举报
回复
待遇跟工作年限有一年关系,但不是绝对的。 更多的还是看你的目标公司的赢利能力,以及你自己的技术实力和做贡献的能力。 有的应届生就10K,有的人七八年也才10K。 对你个人而言,是没有可比性的。
paulzeng12 2013-08-27
  • 打赏
  • 举报
回复
java、.net 可替代性太高了。 可替代性高,能有多高薪水?
异常异长 2013-08-27
  • 打赏
  • 举报
回复
两年 6k 比较普遍吧
alvetjook2012 2013-08-24
  • 打赏
  • 举报
回复
一般来说公司看你给创造的价值给钱,你说的情况有两种可能,一个是面试的公司不行,太小,给不起这么多,一个可能是个人能力不行,都是有可能的,同学的薪水说明不了啥,有人毕业2w+的
想名费脑 2013-08-24
  • 打赏
  • 举报
回复
引用 1 楼 lhx527099095 的回复:
哎 看来.net真的是不行了 感觉2年半大部分都能拿7-8k了吧 为何.net7.5都没人要?还在北京 跟不要说二线了 搞得我都动摇了 是不是要赶紧转啊 我同学 做页游的 毕业一年已经7k了
as的工资就高啊
  • 打赏
  • 举报
回复
引用 5 楼 Mr_graceless 的回复:
4年睡前8K.net路过。菜鸟级
大神你在哪个公司,把我拉过去吧
cheniwantyou 2013-08-23
  • 打赏
  • 举报
回复
.NET 2年7.5K对于一般的公司来说给不了那么多,起码得3年。 5年的,大概9K+吧。
LogicTeamLeader 2012-11-26
  • 打赏
  • 举报
回复
给钱是看人,不是看你会什么语言。
real_time 2012-11-24
  • 打赏
  • 举报
回复
很低了~别破坏行情
Mr_graceless 2012-11-21
  • 打赏
  • 举报
回复
4年睡前8K.net路过。菜鸟级
风中追梦郎 2012-11-20
  • 打赏
  • 举报
回复
都被同学党逼疯了.
aa362459465 2012-10-23
  • 打赏
  • 举报
回复
又见同学党
number1170196649 2012-10-23
  • 打赏
  • 举报
回复
舍友进了多益网络,应届毕业生就7k 了。
lhx527099095 2012-10-22
  • 打赏
  • 举报
回复
哎 看来.net真的是不行了 感觉2年半大部分都能拿7-8k了吧 为何.net7.5都没人要?还在北京 跟不要说二线了
搞得我都动摇了 是不是要赶紧转啊
我同学 做页游的 毕业一年已经7k了
CruiseYoung提供的带有详细书签的电子书籍目录 http://blog.csdn.net/fksec/article/details/7888251 深入理解Android:卷I(51CTO网站“2011年度最受读者喜爱的原创IT技术图书”) 基本信息 作者: 邓凡平 出版社:机械工业出版社 ISBN:9787111357629 上架时间:2011-9-13 出版日期:2011 年9月 开本:16开 页码:488 版次:1-1 编辑推荐   结合实际应用开发需求,以情景分析的方式有针对性地对Android的源代码进行了十分详尽的剖析,深刻揭示Android系统的工作原理    机锋网、51CTO、开源中国社区等专业技术网站一致鼎力推荐 内容简介   《深入理解android:卷1》是一本以情景方式对android的源代码进行深入分析的书。内容广泛,以对framework层的分析为主,兼顾native层和application层;分析深入,每一部分源代 码的分析都力求透彻;针对性强,注重实际应用开发需求,书中所涵盖的知识点都是android应用开发者和系统开发者需要重点掌握的。    全书共10章,第1章介绍了阅读本书所需要做的准备工作,主要包括对android系统架构和源码阅读方法的介绍;第2章通过对android系统中的mediascanner进行分析,详细讲解了 android中十分重要的jni技术;第3章分析了init进程,揭示了通过解析init.rc来启动zygote以及属性服务的工作原理;第4章分析了zygote、systemserver等进程的工作机制,同时还讨论了 android的启动速度、虚拟机heapsize的大小调整、watchdog工作原理等问题;第5章讲解了android系统中常用的类,包括sp、wp、refbase、thread等类,同步类,以及java中的handler类和 looper类,掌握这些类的知识后方能在后续的代码分析中做到游刃有余;第6章以mediaserver为切入点,对android中极为重要的binder进行了较为全面的分析,深刻揭示了其本质。第7章对 audio系统进行了深入的分析,尤其是audiotrack、audioflinger和audiopolicyservice等的工作原理。第8章深入讲解了surface系统的实现原理,分析了surface与activity之间以及surface 与surfaceflinger之间的关系、surfaceflinger的工作原理、surface系统中的帧数据传输以及layerbuffer的工作流程。第9章对vold和rild的原理和机制进行了深入的分析,同时还探讨了 phone设计优化的问题;第10章分析了多媒体系统中mediascanner的工作原理。    本书适合有一定基础的android应用开发工程师和系统工程师阅读。通过对本书的学习,大家将能更深刻地理解android系统,从而自如应对实际开发中遇到的难题。 作译者   邓凡平,资深Android开发工程师,热衷于Android源代码的研究,对Android的架构设计和实现原理有非常深刻的认识和理解,应用开发经验也十分丰富。目前就职于国内一家领先的 Android企业,负责Framework的开发和维护。乐于分享,活跃于CSDN等专业社区,撰写的Android Framework源码的系列文章深受读者欢迎。此外,他对Linux内核、C/C++/Python相关的技术 ,以及性能网络服务器和多核并行开发等也有一定的研究。 目录 封面 -17 封底 489 扉页 -16 版权 -15 推荐序 -14 前言 -12 致谢 -9 目录 -7 第1章 阅读前的准备工作 1 1.1 系统架构 2 1.1.1 Android系统架构 2 1.1.2 本书的架构 3 1.2 搭建开发环境 4 1.2.1 下载源码 4 1.2.2 编译源码 6 1.3 工具介绍 8 1.3.1 Source Insight介绍 8 1.3.3 Busybox的使用 11 1.4 本章小结 12 第2章 深入理解JNI 13 2.1 JNI概述 14 2.2 学习JNI的实例:MediaScanner 15 2.3 Java层的MediaScanner分析 16 2.3.1 加载JNI库 16 2.3.2 Java的native函数和总结 17 2.4 JNI层MediaScanner的分析 17 2.4.1 注册JNI函数 18 2.4.2 数据类型转换 22 2.4.3 JNIEnv介绍 24 2.4.4 通过JNIEnv操作jobject 25 2.4.5 jstring介绍 27 2.4.6 JNI类型签名介绍 28 2.4.7 垃圾回收 29 2.4.8 JNI中的异常处理 32 2.5 本章小结 32 第3章 深入理解init 33 3.1 概述 34 3.2 init分析 34 3.2.1 解析配置文件 38 3.2.2 解析service 42 3.2.3 init控制service 48 3.2.4 属性服务 52 3.3 本章小结 60 第4章 深入理解zygote 61 4.1 概述 62 4.2 zygote分析 62 4.2.1 AppRuntime分析 63 4.2.2 Welcome to Java World 68 4.2.3 关于zygote的总结 74 4.3 SystemServer分析 74 4.3.1 SystemServer的诞生 74 4.3.2 SystemServer的重要使命 77 4.3.3 关于SystemServer的总结 83 4.4 zygote的分裂 84 4.4.1 ActivityManagerService发送请求 84 4.4.2 有求必应之响应请求 86 4.4.3 关于zygote分裂的总结 88 4.5 拓展思考 88 4.5.1 虚拟机heapsize的限制 88 4.5.2 开机速度优化 89 4.5.3 Watchdog分析 90 4.6 本章小结 93 第5章 深入理解常见类 95 5.1 概述 96 5.2 以“三板斧”揭秘RefBase、 sp和WP 96 5.2.1 第一板斧——初识影子对象 96 5.2.2 第二板斧——由弱生强 103 5.2.3 第三板斧——破解生死魔咒 106 5.2.4 轻量级的引用计数控制类LightRefBase 108 5.2.5 题外话——三板斧的来历 109 5.3 Thread类及常用同步类分析 109 5.3.1 一个变量引发的思考 109 5.3.2 常用同步类 114 5.4 Looper和Handler类分析 121 5.4.1 Looper类分析 122 5.4.2 Handler分析 124 5.4.3 Looper和Handler的同步关系 127 5.4.4 HandlerThread介绍 129 5.5 本章小结 129 第6章 深入理解Binder 130 6.1 概述 131 6.2 庖丁解MediaServer 132 6.2.1 MediaServer的入口函数 132 6.2.2 独一无二的ProcessState 133 6.2.3 时空穿越魔术——defaultServiceManager 134 6.2.4 注册MediaPlayerService 142 6.2.5 秋风扫落叶——StartThread Pool和join Thread Pool分析 149 6.2.6 你彻底明白了吗 152 6.3 服务总管ServiceManager 152 6.3.1 ServiceManager的原理 152 6.3.2 服务的注册 155 6.3.3 ServiceManager存在的意义 158 6.4 MediaPlayerService和它的Client 158 6.4.1 查询ServiceManager 158 6.4.2 子承父业 159 6.5 拓展思考 162 6.5.1 Binder和线程的关系 162 6.5.2 有人情味的讣告 163 6.5.3 匿名Service 165 6.6 学以致用 166 6.6.1 纯Native的Service 166 6.6.2 扶得起的“阿斗”(aidl) 169 6.7 本章小结 172 第7章 深入理解Audio系统 173 7.1 概述 174 7.2 AudioTrack的破解 174 7.2.1 用例介绍 174 7.2.2 AudioTrack (Java空间)分析 179 7.2.3 AudioTrack (Native空间)分析 188 7.2.4 关于AudioTrack的总结 200 7.3 AudioFlinger的破解 200 7.3.1 AudioFlinger的诞生 200 7.3.2 通过流程分析AudioFlinger 204 7.3.3 audio track cblk t分析 230 7.3.4 关于AudioFlinger的总结 234 7.4 AudioPolicyService的破解 234 7.4.1 AudioPolicyService的创建 235 7.4.2 重回AudioTrack 245 7.4.3 声音路由切换实例分析 251 7.4.4 关于AudioPolicy的总结 262 7.5 拓展思考 262 7.5.1 DuplicatingThread破解 262 7.5.2 题外话 270 7.6 本章小结 272 第8章 深入理解Surface系统 273 8.1 概述 275 8.2 一个Activity的显示 275 8.2.1 Activity的创建 275 8.2.2 Activity的UI绘制 294 8.2.3 关于Activity的总结 296 8.3 初识Surface 297 8.3.1 和Surface有关的流程总结 297 8.3.2 Surface之乾坤大挪移 298 8.3.3 乾坤大挪移的JNI层分析 303 8.3.4 Surface和画图 307 8.3.5 初识Surface小结 309 8.4 深入分析Surface 310 8.4.1 与Surface相关的基础知识介绍 310 8.4.2 SurfaceComposerClient分析 315 8.4.3 SurfaceControl分析 320 8.4.4 writeToParcel和Surface对象的创建 331 8.4.5 lockCanvas和unlockCanvasAndPost分析 335 8.4.6 GraphicBuffer介绍 344 8.4.7 深入分析Surface的总结 353 8.5 SurfaceFlinger分析 353 8.5.1 SurfaceFlinger的诞生 354 8.5.2 SF工作线程分析 359 8.5.3 Transaction分析 368 8.5.4 关于SurfaceFlinger的总结 376 8.6 拓展思考 377 8.6.1 Surface系统的CB对象分析 377 8.6.2 ViewRoot的你问我答 384 8.6.3 LayerBuffer分析 385 8.7 本章小结 394 第9章 深入理解Vold和Rild 395 9.1 概述 396 9.2 Vold的原理与机制分析 396 9.2.1 Netlink和Uevent介绍 397 9.2.2 初识Vold 399 9.2.3 NetlinkManager模块分析 400 9.2.4 VolumeManager模块分析 408 9.2.5 CommandListener模块分析 414 9.2.6 Vold实例分析 417 9.2.7 关于Vold的总结 428 9.3 Rild的原理与机制分析 428 9.3.1 初识Rild 430 9.3.2 RIL_startEventLoop分析 432 9.3.3 RIL Init分析 437 9.3.4 RIL_ register分析 444 9.3.5 关于Rild main函数的总结 447 9.3.6 Rild实例分析 447 9.3.7 关于Rild的总结 459 9.4 拓展思考 459 9.4.1 嵌入式系统的存储知识介绍 459 9.4.2 Rild和Phone的改进探讨 462 9.5 本章小结 463 第10章 深入理解MediaScanner 464 10.1 概述 465 10.2 android.process.media分析 465 10.2.1 MSR模块分析 466 10.2.2 MSS模块分析 467 10.2.3 android.process.media媒体扫描工作的流程总结 471 10.3 MediaScanner分析 472 10.3.1 Java层分析 472 10.3.2 JNI层分析 476 10.3.3 PVMediaScanner分析 479 10.3.4 关于MediaScanner的总结 485 10.4 拓展思考 486 10.4.1 MediaScannerConnection介绍 486 10.4.2 我问你答 487 10.5 本章小结 488 前言   虽然前言位于书的最前面,但往往是最后才完成的。至今,本书的撰写工作算是基本完成了,在书稿付梓之前,心中却有些许忐忑和不安,因为拙著可能会存在Bug。为此,我先为书中可 能存在的Bug将给大家带来的麻烦致以真诚的歉意。另外,如果大家发现本书存在纰漏或有必要进一步探讨的地方,请发邮件给我(fanping.deng@gmail.com),我会尽快回复。非常乐意与大 家交流。      本书主要内容   全书一共10章,其中一些重要章节中还设置了“拓展思考”部分。这10章的主要内容是:   第1章介绍了阅读本书所需要做的一些准备工作,包括对Android整个系统架构的认识,以及Android开发环境和源码阅读环境的搭建等。注意,本书分析的源码是Android2.2。   第2章通过Android源码中的一处实例深入地介绍了JNI技术。   第3章围绕init进程,介绍了如何解析init.rc以启动Zygote和属性服务(property service)的工作原理。   第4章剖析了zygote和system_server进程的工作原理。本章的拓展思考部分讨论了Andorid的启动速度、虚拟机heapsize的大小调整问题以及“看门狗”的工作原理。   第5章讲解了Android源码中常用的类,如sp、wp、RefBase、Thread类、同步类、Java中的Handler类以及Looper类。这些类都是Android中最常用和最基本的,只有掌握这些类的知识,才 能在分析后续的代码时游刃有余。   第6章以MediaServer为切入点,对Binder进行了较为全面的分析。本章拓展思考部分讨论了与Binder有关的三个问题,它们分别是Binder和线程的关系、死亡通知以及匿名Service。笔者 希望,通过本章的学习,大家能更深入地认识Binder的本质。   第7章阐述了Audio系统中的三位重要成员AudioTrack、AudioFlinger和AudioPolicyService的工作原理。本章拓展思考部分分析了AudioFlinger中DuplicatingThread的工作原理,并且和 读者一道探讨了单元测试、ALSA、Desktop check等问题。通过对本章的学习,相信读者会对Audio系统有更深的理解。   第8章以Surface系统为主,分析了Activity和Surface的关系、Surface和SurfaceFlinger的关系以及SurfaceFlinger的工作原理。本章的拓展思考部分分析了Surface系统中数据传输控制 对象的工作原理、有关ViewRoot的一些疑问,最后讲解了LayerBuffer的工作流程。这是全书中难度较大的一章,建议大家反复阅读和思考,这样才能进一步深入理解Surface系统。   第9章分析了Vold和Rild,其中Vold负责Android平台中外部存储设备的管理,而Rild负责与射频通信有关的工作。本章的拓展思考部分介绍了嵌入式系统中与存储有关的知识,还探讨了 Rild和Phone设计优化方面的问题。   第10章分析了多媒体系统中MediaScanner的工作原理。在本章的拓展思考部分,笔者提出了几个问题,旨在激发读者深入思考和学习Android的欲望。      本书特色   笔者认为,本书最大的特点在于,较全面、系统、深入地讲解了Android系统中的几大重要组成部分的工作原理,旨在通过直接剖析源代码的方式,引领读者一步步深入于诸如Binder、 Zygote、Audio、Surface、Vold、Rild等模块的内部,去理解它们是如何实现的,以及如何工作的。笔者根据研究Android代码的心得,在本书中尝试性地采用了精简流程、逐个击破的方法进 行讲解,希望这样做能帮助读者更快、更准确地把握各模块的工作流程及其本质。本书大部分章节中都专门撰写了“拓展思路”的内容,希望这部分内容能激发读者对Android代码进行深入研 究的热情。      本书面向的读者   (1)Android应用开发工程师 .  对于Android应用开发工程师而言,本书中关于Binder,以及sp、wp、Handler和Looper等常用类的分析或许能帮助你迅速适应Android平台上的开发工作。   (2)Android系统开发工程师   Android系统开发工程师常常需要深入理解系统的运转过程,而本书所涉及的内容可能正是他们在工作和学习中最想了解的。那些对具体模块(如Audio系统和Surface系统)感兴趣的读者 也可以直接阅读相关章节的内容。   这里有必要提醒一下,要阅读此书,应具有C++的基本知识,因为本书的大部分内容都集中在了Native层。      如何阅读本书   本书是在分析Android源码的基础上展开的,而源码文件所在的路径一般都很长,例如,文件AndroidRuntime.cpp的真实路径就是framework/base/core/jni/AndroidRuntime.cpp。为了书 写方便起见,我们在各章节开头把该章所涉及的源码路径全部都列出来了,而在具体分析源码时,则只列出该源码的文件名。   下面就是一个示例:   [--]AndroidRuntime.cpp]   //这里是源码分析和一些注释。   如有一些需要特别说明的地方,则会用下面的格式表示:   [--]AndroidRuntime.cpp::特别说明]   特别说明可帮助读者找到源码中的对应位置。   另外,本书在描述类之间的关系以及在函数调用流程上使用了UML的静态类图以及序列图。UML是一个强大的工具,但它的建模规范过于烦琐,为更简单清晰地描述事情的本质,本书并未 完全遵循UML的建模规范。   本书所使用的UML图都比较简单,读者大可不必花费时间专门学习UML。   本书的编写顺序,其实应该是6、5、4、7、8、9、10、2、3、1章,但出于逻辑连贯性的考虑,还是建议读者按本书的顺序阅读。其中,第2、5、6章分别讲述了JNI、Android常用类以及 Binder系统,这些都是基础知识,我们有必要完全掌握。其他部分的内容都是针对单个模块的,例如Zygote、Audio、Surface、MediaScanner等,读者可各取所需,分别对其进行研究。      致谢   首先要感谢杨福川编辑。本书最初的内容来自我的博客,但博客里的文章都没有图,格式也较混乱。是杨编辑最先鼓励我将这些博文整理修改成册,所以我对杨福川编辑的眼光佩服得五 体投地。在他的同事杨绣国和白宇的帮助下,我最终才将博客中那些杂乱的文章撰成了今天这本图文并茂、格式工整的书籍。   其次要感谢我的妻子。为写成此书,我几乎将周末所有的时间都花在了工作中,而长时间在生活上对妻子不闻不问。对丈夫呆若木鸡式的冷淡,妻子却给予了最大的宽容。另外,我的岳 父母和我的父母亲都给予了我最无私的帮助,他们都是平凡而伟大的父母亲。还有我和妻子的亲戚们,他们的宽厚和善良时刻感动着我。   在IT职业的道路上,非常感念前东家中科大洋公司的领导和同事们,他们是邓伟先生、刘运红先生、王宁先生等。当初,如果没有他们宽容的接纳和细心的指导,现在我不可能成为一名 合格的程序员。   非常感谢我现在供职的单位中科创达公司。在这里工作,我常有这样一种感慨:不是所有人都能自己开公司创业的,而又有多少人能够有机会和一个优秀的创业公司一起成长、一起发展 呢?创达开明的领导、睿智而富有激情的工作伙伴正是孕育本书的沃土。公司领导赵鸿飞先生、吴安华女士等人更是给予了我最大的肯定和鼓励。   这里要特别提及的是,我的大学同窗,即为本书作序的邓必山先生。如果没有他的推荐,凭自己那份简陋、单薄的简历,是根本无法与Android亲密接触的。另外,他还曾在技术和个人发 展上给予过我很多的指导,对此,我将永志不忘!   谢谢那些共享Android知识的网友们!没有大家前期点滴的奉献,或许我至今还在琢磨着某段代码呢。   最后应感谢的是肯花费时间和精力阅读本书的读者,你们的意见和建议将会是我获得的巨大的精神财富!      邓凡平   2011年6月于北京    序言   近两年来,IT行业的最热点聚焦到了移动互联网上。PC时代,WINTEL联盟成就了英特尔和微软各自的霸业。移动互联网时代,谁将上演新的传奇?新生的Android当年仅用短短一年多的时 间就跻身全球智能操作系统的三甲行列。在北美市场,如今Android已经超过iOS和黑莓系统成为老大!Android势不可挡,ARM+Android组合的前景一片光明,越来越多的从业者加入了Android 行列!   与带给人们良好用户体验的iOS不一样的是,Android是一个开放的系统,其所有代码都是开源的。因此,对于开发者而言,不仅可以做到知其然,更可以做到知其所以然!   然而,要想知道其所以然,并不是一件简单的事情。回想当初,我开始接触Android的时候,除了Android源码外,其他资料甚少。Android是基于Linux的完整操作系统,其代码量让人望 而生畏。可以想象,在没有指导的情况下一头扎进操作系统庞大的代码中是一件让人多么痛苦的事情。时间过得很快,Android生态链已经得到了充分的发展。现在市场上的Android资料已经 开始泛滥,书籍已经数不胜数。然而,绝大部分书籍只限于讲解Android应用的开发(拜Android应用API所赐),没有深入到系统级的探讨,极少的所谓提供Android深入指导的资料也只是浅 尝辄止。如果想深入了解Android系统,只有华山一条路:自己看Android源代码!   正是因为如此,当初凡平告诉我他要系统地整理其深入钻研Android源代码的心得时,我表示了强烈的赞同。这是一件极少有人做过的事情,这件事情将给已经或即将跨入Android世界的 同仁们极大的帮助!这本书里,作者以代码框架为主线,用循序渐进的方式将框架中的关键点一一剖开,从而给读者一个架构清楚、细节完善的立体展现。另外,凡平还会用他的幽默给正在 啃枯燥代码的您带来不少笑意和轻松。毫无疑问,如果您想深入了解Android系统,这本书就是您进入Android神秘世界的钥匙。   如果您看准了移动互联网的前景,想深入理解Android,那就让这本书指导您前进吧!      邓必山   2011年6月于北京    媒体评   作者是Thundersoft多媒体组的牛人,技术精深,乐于分享,对Android系统有真正的理解。《深入理解Android:卷1》内容给力,语言生动,全书没有一句废话,各章中的“拓展思考” 尤为精彩,体现了作者对Android实现原理的深入理解和批判性思考。为什么Android的短信群发很慢?为什么拔出SD卡时有的程序会退出?读者都能从本书中找到诸如此类的各种实际问题的 答案。更重要的是,读者能够对Android的整个体系有一个全新的理解。如果你通读了这本书,请一定投一份简历给我们。——Thundersoft(中科创达软件科技(北京)有限公司)      对于Android开发工程师而言,本书不可多得,分析透彻深入,针对性极强。Android系统本身极为庞大,如果要对整个系统进行面面俱到且细致入微地分析,恐怕不是一两本书能完成的 。本书从开发者的实际需求出发,有针对性地对Android系统中的重要知识点和功能模块的源代码实现进行了剖析,这样既能帮助开发者解决实际问题,又能使分析深入透彻,而不是停留于表 面。强烈推荐!——机锋网(http://www.gfan.com/)      这本书非常实用,绝不是枯燥的源代码分析,是深入理解Android工作机制和实现原理的一本好书。为什么说它实用呢?因为它的最终目的并不是停留着源代码分析上,而是要帮助开发者 解决实际问题,于是所有知识点的分析和讲解都是从开发者的实际需求出发的。与一般的源代码分析的书相比较而言,本书在语言上多了几分幽默,更加生动易懂。更重要的是,本书的分析 十分深入,探讨了Android相关功能模块的本质。——51CTO移动开发频道(http://mobile.51cto.com/)      随着Android 系统越来越流行,Android应用的需求也在不断变化,对于开发者而言,深入理解Android系统原理显得越来越重要。目前市面上Android 开发相关的图书已经很多,但真正 能够系统、深入地讲解Android系统原理的书还乏善可陈。这本书的出版恰逢其时,该书同时兼备深度和广度,以循序渐进的方式,优雅的语言,深入分析到各个模块的源码与原理。另外,它 启发性的讲解方式,更有助于读者的学习和思考。——开源中国社区(http://www.oschina.net/)   
MySQL 5.1参考手册 这是MySQL参考手册的翻译版本,关于MySQL参考手册,请访问dev.mysql.com。 原始参考手册为英文版,与英文版参考手册相比,本翻译版可能不是最新的。 This translation was done by MySQL partner GreatLinux, Beijing, People's Republic of China. GreatLinux Inc. 北京万里开源软件有限公司在全国范围提供MySQL产品相关的商务及 技术方面的咨询与支持服务。垂询请致电:8610-65694500,或发送邮件至:sales@greatlinux.com. 本手册编译于2006-7-29,目录及索引由官方HTML文档转换并加以修订,如有链接错误请发送邮件至: hemono@gmail.com 。获取最新CHM及PDF版本,请访问:hemon.ecjtu.net 。 张伟,华东交通大学。 摘要 这是MySQL参考手册 它涉及MySQL 5.1至5.1.2-alpha版本。 文档生成于: 2005-11-15 -------------------------------------------------------------------------------- 目录 前言 1. 一般信息 1.1. 关于本手册 1.2. 本手册采用的惯例 1.3. MySQL AB概述 1.4. MySQL数据库管理系统概述 1.4.1. MySQL的历史 1.4.2. MySQL的的主要特性 1.4.3. MySQL稳定性 1.4.4. MySQL表最大能达到多少 1.4.5. 2000年兼容性 1.5. MaxDB数据库管理系统概述 1.5.1. 什么是MaxDB? 1.5.2. MaxDB的历史 1.5.3. MaxDB的特性 1.5.4. 许可和支持 1.5.5. MaxDB和MySQL之间的特性差异 1.5.6. MaxDB和MySQL之间的协同性 1.5.7. 与MaxDB有关的链接 1.6. MySQL发展大事记 1.6.1. MySQL 5.1的新特性 1.7. MySQL信息源 1.7.1. MySQL邮件列表 1.7.2. IRC(在线聊天系统)上的MySQL社区支持 1.7.3. MySQL论坛上的MySQL社区支持 1.8. MySQL标准的兼容性 1.8.1. MySQL遵从的标准是什么 1.8.2. 选择SQL模式 1.8.3. 在ANSI模式下运行MySQL 1.8.4. MySQL对标准SQL的扩展 1.8.5. MySQL与标准SQL的差别 1.8.6. MySQL处理约束的方式 2. 安装MySQL 2.1. 一般安装问题 2.1.1. MySQL支持的操作系统 2.1.2. 选择要安装的MySQL分发版 2.1.3. 怎样获得MySQL 2.1.4. 通过MD5校验和或GnuPG验证软件包的完整性 2.1.5. 安装布局 2.2. 使用二进制分发版的标准MySQL安装 2.3. 在Windows上安装MySQL 2.3.1. Windows系统要求 2.3.2. 选择安装软件包 2.3.3. 用自动安装器安装MySQL 2.3.4. 使用MySQL安装向导 2.3.5. 使用配置向导 2.3.6. 通过非安装Zip文件安装MySQL 2.3.7. 提取安装档案文件 2.3.8. 创建选项文件 2.3.9. 选择MySQL服务器类型 2.3.10. 首次启动服务器 2.3.11. 从Windows命令行启动MySQL 2.3.12. 以Windows服务方式启动MySQL 2.3.13. 测试MySQL安装 2.3.14. 在Windows环境下对MySQL安装的故障诊断与排除 2.3.15. 在Windows下升级MySQL 2.3.16. Windows版MySQL同Unix版MySQL对比 2.4. 在Linux下安装MySQL 2.5.在Mac OS X中安装MySQL 2.6. 在NetWare中安装MySQL 2.7. 在其它类Unix系统中安装MySQL 2.8. 使用源码分发版安装MySQL 2.8.1. 源码安装概述 2.8.2. 典型配置选项 2.8.3. 从开发源码树安装 2.8.4. 处理MySQL编译问题 2.8.5. MIT-pthreads注意事项 2.8.6. 在Windows下从源码安装MySQL 2.8.7. 在Windows下编译MySQL客户端 2.9. 安装后的设置和测试 2.9.1. Windows下安装后的过程 2.9.2. Unix下安装后的过程 2.9.3. 使初始MySQL账户安全 2.10. 升级MySQL 2.10.1. 从5.0版升级 2.10.2. 升级授权表 2.10.3. 将MySQL数据库拷贝到另一台机器 2.11. 降级MySQL 2.12. 具体操作系统相关的注意事项 2.12.1. Linux注意事项 2.12.2. Mac OS X注意事项 2.12.3. Solaris注意事项 2.12.4. BSD注意事项 2.12.5. 其它Unix注意事项 2.12.6. OS/2注意事项 2.13. Perl安装注意事项 2.13.1. 在Unix中安装Perl 2.13.2. 在Windows下安装ActiveState Perl 2.13.3. 使用Perl DBI/DBD接口的问题 3. 教程 3.1. 连接与断开服务器 3.2. 输入查询 3.3. 创建并使用数据库 3.3.1. 创建并选择数据库 3.3.2. 创建表 3.3.3. 将数据装入表中 3.3.4. 从表检索信息 3.4. 获得数据库和表的信息 3.5. 在批处理模式下使用mysql 3.6. 常用查询的例子 3.6.1. 列的最大值 3.6.2. 拥有某个列的最大值的行 3.6.3. 列的最大值:按组 3.6.4. 拥有某个字段的组间最大值的行 3.6.5. 使用用户变量 3.6.6. 使用外键 3.6.7. 根据两个键搜索 3.6.8. 根据天计算访问量 3.6.9. 使用AUTO_INCREMENT 3.7. 孪生项目的查询 3.7.1. 查找所有未分发的孪生项 3.7.2. 显示孪生对状态的表 3.8. 与Apache一起使用MySQL 4. MySQL程序概述 4.1. MySQL程序概述 4.2. 调用MySQL程序 4.3. 指定程序选项 4.3.1. 在命令行上使用选项 4.3.2. 使用选项文件 4.3.3. 用环境变量指定选项 4.3.4. 使用选项设置程序变量 5. 数据库管理 5.1. MySQL服务器和服务器启动脚本 5.1.1. 服务器端脚本和实用工具概述 5.1.2. mysqld-max扩展MySQL服务器 5.1.3. mysqld_safe:MySQL服务器启动脚本 5.1.4. mysql.server:MySQL服务器启动脚本 5.1.5. mysqld_multi:管理多个MySQL服务器的程序 5.2. mysqlmanager:MySQL实例管理器 5.2.1. 用MySQL实例管理器启动MySQL服务器 5.2.2. 连接到MySQL实例管理器并创建用户账户 5.2.3. MySQL实例管理器命令行选项 5.2.4. MySQL实例管理器配置文件 5.2.5. MySQL实例管理器识别的命令 5.3. mysqld:MySQL服务器 5.3.1. mysqld命令行选项 5.3.2. SQL服务器模式 5.3.3. 服务器系统变量 5.3.4. 服务器状态变量 5.4. mysql_fix_privilege_tables:升级MySQL系统表 5.5. MySQL服务器关机进程 5.6. 一般安全问题 5.6.1. 通用安全指南 5.6.2. 使MySQL在攻击者面前保持安全 5.6.3. Mysqld安全相关启动选项 5.6.4. LOAD DATA LOCAL安全问题 5.7. MySQL访问权限系统 5.7.1. 权限系统的作用 5.7.2. 权限系统工作原理 5.7.3. MySQL提供的权限 5.7.4. 与MySQL服务器连接 5.7.5. 访问控制, 阶段1:连接核实 5.7.6. 访问控制, 阶段2:请求核实 5.7.7. 权限更改何时生效 5.7.8. 拒绝访问错误的原因 5.7.9. MySQL 4.1中的密码哈希处理 5.8. MySQL用户账户管理 5.8.1. MySQL用户名和密码 5.8.2. 向MySQL增加新用户账户 5.8.3. 从MySQL删除用户账户 5.8.4. 限制账户资源 5.8.5. 设置账户密码 5.8.6. 使你的密码安全 5.8.7. 使用安全连接 5.9. 备份与恢复 5.9.1. 数据库备份 5.9.2. 示例用备份与恢复策略 5.9.3. 自动恢复 5.9.4. 表维护和崩溃恢复 5.9.5. myisamchk:MyISAM表维护实用工具 5.9.6. 建立表维护计划 5.9.7. 获取关于表的信息 5.10. MySQL本地化和国际应用 5.10.1. 数据和排序用字符集 5.10.2. 设置错误消息语言 5.10.3. 添加新的字符集 5.10.4. 字符定义数组 5.10.5. 字符串比较支持 5.10.6. 多字节字符支持 5.10.7. 字符集问题 5.10.8. MySQL服务器时区支持 5.11. MySQL日志文件 5.11.1. 错误日志 5.11.2. 通用查询日志 5.11.3. 二进制日志 5.11.4. 慢速查询日志 5.11.5. 日志文件维护 5.12. 在同一台机器上运行多个MySQL服务器 5.12.1. 在Windows下运行多个服务器 5.12.2. 在Unix中运行多个服务器 5.12.3. 在多服务器环境中使用客户端程序 5.13. MySQL查询速缓冲 5.13.1. 查询速缓冲如何工作 5.13.2. 查询速缓冲SELECT选项 5.13.3. 查询速缓冲配置 5.13.4. 查询速缓冲状态和维护 6. MySQL中的复制 6.1. 复制介绍 6.2. 复制实施概述 6.3. 复制实施细节 6.3.1. 复制主线程状态 6.3.2. 复制从I/O线程状态 6.3.3. 复制从SQL线程状态 6.3.4. 复制传递和状态文件 6.4. 如何设置复制 6.5. 不同MySQL版本之间的复制兼容性 6.6. 升级复制设置 6.6.1. 将复制升级到5.0版 6.7. 复制特性和已知问题 6.8. 复制启动选项 6.9. 复制FAQ 6.10. 复制故障诊断与排除 6.11. 通报复制缺陷 6.12. 多服务器复制中的Auto-Increment 7. 优化 7.1. 优化概述 7.1.1. MySQL设计局限与折衷 7.1.2. 为可移植性设计应用程序 7.1.3. 我们已将MySQL用在何处? 7.1.4. MySQL基准套件 7.1.5. 使用自己的基准 7.2. 优化SELECT语句和其它查询 7.2.1. EXPLAIN语法(获取SELECT相关信息) 7.2.2. 估计查询性能 7.2.3. SELECT查询的速度 7.2.4. MySQL怎样优化WHERE子句 7.2.5. 范围优化 7.2.6. 索引合并优化 7.2.7. MySQL如何优化IS NULL 7.2.8. MySQL如何优化DISTINCT 7.2.9. MySQL如何优化LEFT JOIN和RIGHT JOIN 7.2.10. MySQL如何优化嵌套Join 7.2.11. MySQL如何简化外部联合 7.2.12. MySQL如何优化ORDER BY 7.2.13. MySQL如何优化GROUP BY 7.2.14. MySQL如何优化LIMIT 7.2.15. 如何避免表扫描 7.2.16. INSERT语句的速度 7.2.17. UPDATE语句的速度 7.2.18. DELETE语句的速度 7.2.19. 其它优化技巧 7.3. 锁定事宜 7.3.1. 锁定方法 7.3.2. 表锁定事宜 7.4. 优化数据库结构 7.4.1. 设计选择 7.4.2. 使你的数据尽可能小 7.4.3. 列索引 7.4.4. 多列索引 7.4.5. MySQL如何使用索引 7.4.6. MyISAM键速缓冲 7.4.7. MyISAM索引统计集合 7.4.8. MySQL如何计算打开的表 7.4.9. MySQL如何打开和关闭表 7.4.10. 在同一个数据库中创建多个表的缺陷 7.5. 优化MySQL服务器 7.5.1. 系统因素和启动参数的调节 7.5.2. 调节服务器参数 7.5.3. 控制查询优化器的性能 7.5.4. 编译和链接怎样影响MySQL的速度 7.5.5. MySQL如何使用内存 7.5.6. MySQL如何使用DNS 7.6. 磁盘事宜 7.6.1. 使用符号链接 8. 客户端和实用工具程序 8.1. 客户端脚本和实用工具概述 8.2. myisampack:生成压缩、只读MyISAM表 8.3. mysql:MySQL命令行工具 8.3.1. 选项 8.3.2. mysql命令 8.3.3. 怎样从文本文件执行SQL语句 8.3.4. mysql技巧 8.4. mysqlaccess:用于检查访问权限的客户端 8.5. mysqladmin:用于管理MySQL服务器的客户端 8.6. mysqlbinlog:用于处理二进制日志文件的实用工具 8.7. mysqlcheck:表维护和维修程序 8.8. mysqldump:数据库备份程序 8.9. mysqlhotcopy:数据库备份程序 8.10. mysqlimport:数据导入程序 8.11. mysqlshow-显示数据库、表和列信息 8.12. myisamlog:显示MyISAM日志文件内容 8.13. perror:解释错误代码 8.14. replace:字符串替换实用工具 8.15. mysql_zap:杀死符合某一模式的进程 9. 语言结构 9.1. 文字值 9.1.1. 字符串 9.1.2. 数值 9.1.3. 十六进制值 9.1.4. 布尔值 9.1.5. 位字段值 9.1.6. NULL值 9.2. 数据库、表、索引、列和别名 9.2.1. 识别符限制条件 9.2.2. 识别符大小写敏感性 9.3. 用户变量 9.4. 系统变量 9.4.1. 结构式系统变量 9.5. 注释语法 9.6. MySQL中保留字的处理 10. 字符集支持 10.1. 常规字符集和校对 10.2. MySQL中的字符集和校对 10.3. 确定默认字符集和校对 10.3.1. 服务器字符集和校对 10.3.2. 数据库字符集和校对 10.3.3. 表字符集和校对 10.3.4. 列字符集和校对 10.3.5. 字符集和校对分配示例 10.3.6. 连接字符集和校对 10.3.7. 字符串文字字符集和校对 10.3.8. 在SQL语句中使用COLLATE 10.3.9. COLLATE子句优先 10.3.10. BINARY操作符 10.3.11. 校对确定较为复杂的一些特殊情况 10.3.12. 校对必须适合字符集 10.3.13. 校对效果的示例 10.4. 字符集支持影响到的操作 10.4.1. 结果字符串 10.4.2. CONVERT() 10.4.3. CAST() 10.4.4. SHOW语句 10.5. Unicode支持 10.6. 用于元数据的UTF8 10.7. 与其它DBMS的兼容性 10.8. 新字符集配置文件格式 10.9. 国家特有字符集 10.10. MySQL支持的字符集和校对 10.10.1. Unicode字符集 10.10.2. 西欧字符集 10.10.3. 中欧字符集 10.10.4. 南欧与中东字符集 10.10.5. 波罗的海字符集 10.10.6. 西里尔字符集 10.10.7. 亚洲字符集 11. 列类型 11.1. 列类型概述 11.1.1. 数值类型概述 11.1.2. 日期和时间类型概述 11.1.3. 字符串类型概述 11.2. 数值类型 11.3. 日期和时间类型 11.3.1. DATETIME、DATE和TIMESTAMP类型 11.3.2. TIME类型 11.3.3. YEAR类型 11.3.4. Y2K事宜和日期类型 11.4. String类型 11.4.1. CHAR和VARCHAR类型 11.4.2. BINARY和VARBINARY类型 11.4.3. BLOB和TEXT类型 11.4.4. ENUM类型 11.4.5. SET类型 11.5. 列类型存储需求 11.6. 选择正确的列类型 11.7. 使用来自其他数据库引擎的列类型 12. 函数和操作符 12.1. 操作符 12.1.1. 操作符优先级 12.1.2. 圆括号 12.1.3. 比较函数和操作符 12.1.4. 逻辑操作符 12.2. 控制流程函数 12.3. 字符串函数 12.3.1. 字符串比较函数 12.4. 数值函数 12.4.1. 算术操作符 12.4.2. 数学函数 12.5. 日期和时间函数 12.6. MySQL使用什么日历? 12.7. 全文搜索功能 12.7.1. 布尔全文搜索 12.7.2. 全文搜索带查询扩展 12.7.3. 全文停止字 12.7.4. 全文限定条件 12.7.5. 微调MySQL全文搜索 12.8. Cast函数和操作符 12.9. 其他函数 12.9.1. 位函数 12.9.2. 加密函数 12.9.3. 信息函数 12.9.4. 其他函数 12.10. 与GROUP BY子句同时使用的函数和修改程序 12.10.1. GROUP BY(聚合)函数 12.10.2. GROUP BY修改程序 12.10.3. 具有隐含字段的GROUP BY 13. SQL语句语法 13.1. 数据定义语句 13.1.1. ALTER DATABASE语法 13.1.2. ALTER TABLE语法 13.1.3. CREATE DATABASE语法 13.1.4. CREATE INDEX语法 13.1.5. CREATE TABLE语法 13.1.6. DROP DATABASE语法 13.1.7. DROP INDEX语法 13.1.8. DROP TABLE语法 13.1.9. RENAME TABLE语法 13.2. 数据操作语句 13.2.1. DELETE语法 13.2.2. DO语法 13.2.3. HANDLER语法 13.2.4. INSERT语法 13.2.5. LOAD DATA INFILE语法 13.2.6. REPLACE语法 13.2.7. SELECT语法 13.2.8. Subquery语法 13.2.9. TRUNCATE语法 13.2.10. UPDATE语法 13.3. MySQL实用工具语句 13.3.1. DESCRIBE语法(获取有关列的信息) 13.3.2. USE语法 13.4. MySQL事务处理和锁定语句 13.4.1. START TRANSACTION, COMMIT和ROLLBACK语法 13.4.2. 不能回滚的语句 13.4.3. 会造成隐式提交的语句 13.4.4. SAVEPOINT和ROLLBACK TO SAVEPOINT语法 13.4.5. LOCK TABLES和UNLOCK TABLES语法 13.4.6. SET TRANSACTION语法 13.4.7. XA事务 13.5. 数据库管理语句 13.5.1. 账户管理语句 13.5.2. 表维护语句 13.5.3. SET语法 13.5.4. SHOW语法 13.5.5. 其它管理语句 13.6. 复制语句 13.6.1. 用于控制主服务器的SQL语句 13.6.2. 用于控制从服务器的SQL语句 13.7. 用于预处理语句的SQL语法 14. 插件式存储引擎体系结构 14.1. 前言 14.2. 概述 14.3. 公共MySQL数据库服务器层 14.4. 选择存储引擎 14.5. 将存储引擎指定给表 14.6. 存储引擎和事务 14.7. 插入存储引擎 14.8. 拔出存储引擎 14.9. 插件式存储器的安全含义 15. 存储引擎和表类型 15.1. MyISAM存储引擎 15.1.1. MyISAM启动选项 15.1.2. 键所需的空间 15.1.3. MyISAM表的存储格式 15.1.4. MyISAM表方面的问题 15.2. InnoDB存储引擎 15.2.1. InnoDB概述 15.2.2. InnoDB联系信息 15.2.3. InnoDB配置 15.2.4. InnoDB启动选项 15.2.5. 创建InnoDB表空间 15.2.6. 创建InnoDB表 15.2.7. 添加和删除InnoDB数据和日志文件 15.2.8. InnoDB数据库的备份和恢复 15.2.9. 将InnoDB数据库移到另一台机器上 15.2.10. InnoDB事务模型和锁定 15.2.11. InnoDB性能调节提示 15.2.12. 多版本的实施 15.2.13. 表和索引结构 15.2.14. 文件空间管理和磁盘I/O 15.2.15. InnoDB错误处理 15.2.16. 对InnoDB表的限制 15.2.17. InnoDB故障诊断与排除 15.3. MERGE存储引擎 15.3.1. MERGE表方面的问题 15.4. MEMORY (HEAP)存储引擎 15.5. BDB (BerkeleyDB)存储引擎 15.5.1. BDB支持的操作系统 15.5.2. 安装BDB 15.5.3. BDB启动选项 15.5.4. BDB表的特性 15.5.5. 修改BDB所需的事宜 15.5.6. 对BDB表的限制 15.5.7. 使用BDB表时可能出现的错误 15.6. EXAMPLE存储引擎 15.7. FEDERATED存储引擎 15.7.1. 安装FEDERATED存储引擎 15.7.2. FEDERATED存储引擎介绍 15.7.3. 如何使用FEDERATED表 15.7.4. FEDERATED存储引擎的局限性 15.8. ARCHIVE存储引擎 15.9. CSV存储引擎 15.10. BLACKHOLE存储引擎 16. 编写自定义存储引擎 16.1. 前言 16.2. 概述 16.3. 创建存储引擎源文件 16.4. 创建handlerton 16.5. 对处理程序进行实例化处理 16.6. 定义表扩展 16.7. 创建表 16.8. 打开表 16.9. 实施基本的表扫描功能 16.9.1. 实施store_lock()函数 16.9.2. 实施external_lock()函数 16.9.3. 实施rnd_init()函数 16.9.4. 实施info()函数 16.9.5. 实施extra()函数 16.9.6. 实施rnd_next()函数 16.10. 关闭表 16.11. 为存储引擎添加对INSERT的支持 16.12. 为存储引擎添加对UPDATE的支持 16.13. 为存储引擎添加对DELETE的支持 16.14. API引用 16.14.1. bas_ext 16.14.2. close 16.14.3. create 16.14.4. delete_row 16.14.5. delete_table 16.14.6. external_lock 16.14.7. extra 16.14.8. info 16.14.9. open 16.14.10. rnd_init 16.14.11. rnd_next 16.14.12. store_lock 16.14.13. update_row 16.14.14. write_row 17. MySQL簇 17.1. MySQL簇概述 17.2. MySQL簇的基本概念 17.3. 多计算机的简单基础知识 17.3.1. 硬件、软件和联网 17.3.2. 安装 17.3.3. 配置 17.3.4. 首次启动 17.3.5. 加载示例数据并执行查询 17.3.6. 安全关闭和重启 17.4. MySQL簇的配置 17.4.1. 从源码创建MySQL簇 17.4.2. 安装软件 17.4.3. MySQL簇的快速测试设置 17.4.4. 配置文件 17.5. MySQL簇中的进程管理 17.5.1. 用于MySQL簇的MySQL服务器进程使用 17.5.2. ndbd,存储引擎节点进程 17.5.3. ndb_mgmd,“管理服务器”进程 17.5.4. ndb_mgm,“管理客户端”进程 17.5.5. 用于MySQL簇进程的命令选项 17.6. MySQL簇的管理 17.6.1. MySQL簇的启动阶段 17.6.2. “管理客户端”中的命令 17.6.3. MySQL簇中生成的事件报告 17.6.4. 单用户模式 17.6.5. MySQL簇的联机备份 17.7. 使用与MySQL簇的速互连 17.7.1. 配置MySQL簇以使用SCI套接字 17.7.2. 理解簇互连的影响 17.8. MySQL簇的已知限制 17.9. MySQL簇发展的重要历程 17.9.1. MySQL 5.0中的MySQL簇变化 17.9.2. 关于MySQL簇的MySQL 5.1发展历程 17.10. MySQL簇常见问题解答 17.11. MySQL簇术语表 18. 分区 18.1. MySQL中的分区概述 18.2. 分区类型 18.2.1. RANGE分区 18.2.2. LIST分区 18.2.3. HASH分区 18.2.4. KEY分区 18.2.5. 子分区 18.2.6. MySQL分区处理NULL值的方式 18.3. 分区管理 18.3.1. RANGE和LIST分区的管理 18.3.2. HASH和KEY分区的管理 18.3.3. 分区维护 18.3.4. 获取关于分区的信息 19. MySQL中的空间扩展 19.1. 前言 19.2. OpenGIS几何模型 19.2.1. Geometry类的层次 19.2.2. 类Geometry 19.2.3. 类Point 19.2.4. 类Curve 19.2.5. 类LineString 19.2.6. 类Surface 19.2.7. 类Polygon 19.2.8. 类GeometryCollection 19.2.9. 类MultiPoint 19.2.10. 类MultiCurve 19.2.11. 类MultiLineString 19.2.12. 类MultiSurface 19.2.13. 类MultiPolygon 19.3. 支持的空间数据格式 19.3.1. 著名的文本(WKT)格式 19.3.2. 著名的二进制(WKB)格式 19.4. 创建具备空间功能的MySQL数据库 19.4.1. MySQL空间数据类型 19.4.2. 创建空间值 19.4.3. 创建空间列 19.4.4. 填充空间列 19.4.5. 获取空间数据 19.5. 分析空间信息 19.5.1. Geometry格式转换函数 19.5.2. Geometry函数 19.5.3. 从已有Geometry创建新Geometry的函数 19.5.4. 测试几何对象间空间关系的函数 19.5.5. 关于几何最小边界矩形(MBR)的关系 19.5.6. 测试几何类之间空间关系的函数 19.6. 优化空间分析 19.6.1. 创建空间索引 19.6.2. 使用空间索引 19.7. MySQL的一致性和兼容性 19.7.1. 尚未实施的GIS特性 20. 存储程序和函数 20.1. 存储程序和授权表 20.2. 存储程序的语法 20.2.1. CREATE PROCEDURE和CREATE FUNCTION 20.2.2. ALTER PROCEDURE和ALTER FUNCTION 20.2.3. DROP PROCEDURE和DROP FUNCTION 20.2.4. SHOW CREATE PROCEDURE和SHOW CREATE FUNCTION 20.2.5. SHOW PROCEDURE STATUS和SHOW FUNCTION STATUS 20.2.6. CALL语句 20.2.7. BEGIN ... END复合语句 20.2.8. DECLARE语句 20.2.9. 存储程序中的变量 20.2.10. 条件和处理程序 20.2.11. 光标 20.2.12. 流程控制构造 20.3. 存储程序、函数、触发程序和复制:常见问题 20.4. 存储子程序和触发程序的二进制日志功能 21. 触发程序 21.1. CREATE TRIGGER语法 21.2. DROP TRIGGER语法 21.3. 使用触发程序 22. 视图 22.1. ALTER VIEW语法 22.2. CREATE VIEW语法 22.3. DROP VIEW语法 22.4. SHOW CREATE VIEW语法 23. INFORMATION_SCHEMA信息数据库 23.1. INFORMATION_SCHEMA表 23.1.1. INFORMATION_SCHEMA SCHEMATA表 23.1.2. INFORMATION_SCHEMA TABLES表 23.1.3. INFORMATION_SCHEMA COLUMNS表 23.1.4. INFORMATION_SCHEMA STATISTICS表 23.1.5. INFORMATION_SCHEMA USER_PRIVILEGES表 23.1.6. INFORMATION_SCHEMA SCHEMA_PRIVILEGES表 23.1.7. INFORMATION_SCHEMA TABLE_PRIVILEGES表 23.1.8. INFORMATION_SCHEMA COLUMN_PRIVILEGES表 23.1.9. INFORMATION_SCHEMA CHARACTER_SETS表 23.1.10. INFORMATION_SCHEMA COLLATIONS表 23.1.11. INFORMATION_SCHEMA COLLATION_CHARACTER_SET_APPLICABILITY表 23.1.12. INFORMATION_SCHEMA TABLE_CONSTRAINTS表 23.1.13. INFORMATION_SCHEMA KEY_COLUMN_USAGE表 23.1.14. INFORMATION_SCHEMA ROUTINES表 23.1.15. INFORMATION_SCHEMA VIEWS表 23.1.16. INFORMATION_SCHEMA TRIGGERS表 23.1.17. 其他INFORMATION_SCHEMA表 23.2. SHOW语句的扩展 24. 精度数学 24.1. 数值的类型 24.2. DECIMAL数据类型更改 24.3. 表达式处理 24.4. 四舍五入 24.5. 精度数学示例 25. API和库 25.1. libmysqld,嵌入式MySQL服务器库 25.1.1. 嵌入式MySQL服务器库概述 25.1.2. 使用libmysqld编译程序 25.1.3. 使用嵌入式MySQL服务器时的限制 25.1.4. 与嵌入式服务器一起使用的选项 25.1.5. 嵌入式服务器中尚需完成的事项(TODO) 25.1.6. 嵌入式服务器示例 25.1.7. 嵌入式服务器的许可 25.2. MySQL C API 25.2.1. C API数据类型 25.2.2. C API函数概述 25.2.3. C API函数描述 25.2.4. C API预处理语句 25.2.5. C API预处理语句的数据类型 25.2.6. C API预处理语句函数概述 25.2.7. C API预处理语句函数描述 25.2.8. C API预处理语句方面的问题 25.2.9. 多查询执行的C API处理 25.2.10. 日期和时间值的C API处理 25.2.11. C API线程函数介绍 25.2.12. C API嵌入式服务器函数介绍 25.2.13. 使用C API时的常见问题 25.2.14. 创建客户端程序 25.2.15. 如何生成线程式客户端 25.3. MySQL PHP API 25.3.1. 使用MySQL和PHP的常见问题 25.4. MySQL Perl API 25.5. MySQL C++ API 25.5.1. Borland C++ 25.6. MySQL Python API 25.7. MySQL Tcl API 25.8. MySQL Eiffel Wrapper 25.9. MySQL程序开发实用工具 25.9.1. msql2mysql:转换mSQL程序以用于MySQL 25.9.2. mysql_config:获取编译客户端的编译选项 26. 连接器 26.1. MySQL Connector/ODBC 26.1.1. MyODBC介绍 26.1.2. 关于ODBC和MyODBC的一般信息 26.1.3. 如何安装MyODBC 26.1.4. 在Windows平台上从二进制版本安装MyODBC 26.1.5. I在Unix平台上从二进制版本安装MyODBC 26.1.6. 在Windows平台上从源码版本安装MyODBC 26.1.7. 在Unix平台上从源码版本安装MyODBC 26.1.8. 从BitKeeper开发源码树安装MyODBC 26.1.9. MyODBC配置 26.1.10. 与MyODBC连接相关的事宜 26.1.11. MyODBC和Microsoft Access 26.1.12. MyODBC和Microsoft VBA及ASP 26.1.13. MyODBC和第三方ODBC工具 26.1.14. MyODBC通用功能 26.1.15. 基本的MyODBC应用步骤 26.1.16. MyODBC API引用 26.1.17. MyODBC数据类型 26.1.18. MyODBC错误代码 26.1.19. MyODBC与VB:ADO、DAO和RDO 26.1.20. MyODBC与Microsoft.NET 26.1.21. 感谢 26.2. MySQL Connector/NET 26.2.1. 前言 26.2.2. 下载并安装MySQL Connector/NET 26.2.3. Connector/NET体系结构 26.2.4. 使用MySQL Connector/NET 26.2.5. MySQL Connector/NET变更史 26.3. MySQL Connector/J 26.3.1. 基本的JDBC概念 26.3.2. 安装 Connector/J 26.3.3. JDBC引用 26.3.4. 与J2EE和其他Java框架一起使用 Connector/J 26.3.5. 诊断 Connector/J方面的问题 26.3.6. Changelog 26.4. MySQL Connector/MXJ 26.4.1. 前言 26.4.2. 支持平台: 26.4.3. Junit测试要求 26.4.4. 运行Junit测试 26.4.5. 作为JDBC驱动程序的一部分运行 26.4.6. 在Java对象中运行 26.4.7. MysqldResource API 26.4.8. 在JMX代理(custom)中运行 26.4.9. 部署在标准的JMX代理环境下 (JBoss) 26.4.10. 安装 27. 扩展MySQL 27.1. MySQL内部控件 27.1.1. MySQL线程 27.1.2. MySQL测试套件 27.2. 为MySQL添加新函数 27.2.1. 自定义函数接口的特性 27.2.2. CREATE FUNCTION/DROP FUNCTION语法 27.2.3. 添加新的自定义函数 27.2.4. 添加新的固有函数 27.3. 为MySQL添加新步骤 27.3.1. 步骤分析 27.3.2. 编写步骤 A. 问题和常见错误 A.1. 如何确定导致问题的原因 A.2. 使用MySQL程序时的常见错误 A.2.1. 拒绝访问 A.2.2. 无法连接到[local] MySQL服务器 A.2.3. 客户端不支持鉴定协议 A.2.4. 输入密码时出现密码错误 A.2.5. 主机的host_name被屏蔽 A.2.6. 连接数过多 A.2.7. 内存溢出 A.2.8. MySQL服务器不可用 A.2.9. 信息包过大 A.2.10. 通信错误和失效连接 A.2.11. 表已满 A.2.12. 无法创建文件/写入文件 A.2.13. 命令不同步 A.2.14. 忽略用户 A.2.15. 表tbl_name不存在 A.2.16. 无法初始化字符集 A.2.17. 文件未找到 A.3. 与安装有关的事宜 A.3.1. 与MySQL客户端库的链接问题 A.3.2. 如何以普通用户身份运行MySQL A.3.3. 与文件许可有关的问题 A.4. 与管理有关的事宜 A.4.1. 如何复位根用户密码 A.4.2. 如果MySQL依然崩溃,应作些什么 A.4.3. MySQL处理磁盘满的方式 A.4.4. MySQL将临时文件储存在哪里 A.4.5. 如何保护或更改MySQL套接字文件/tmp/mysql.sock A.4.6. 时区问题 A.5. 与查询有关的事宜 A.5.1. 搜索中的大小写敏感性 A.5.2. 使用DATE列方面的问题 A.5.3. 与NULL值有关的问题 A.5.4. 与列别名有关的问题 A.5.5. 非事务表回滚失败 A.5.6. 从相关表删除行 A.5.7. 解决与不匹配行有关的问题 A.5.8. 与浮点比较有关的问题 A.6. 与优化器有关的事宜 A.7. 与表定义有关的事宜 A.7.1. 与ALTER TABLE有关的问题 A.7.2. 如何更改表中的列顺序 A.7.3. TEMPORARY TABLE问题 A.8. MySQL中的已知事宜 A.8.1. MySQL中的打开事宜 B. 错误代码和消息 B.1. 服务器错误代码和消息 B.2. 客户端错误代码和消息 C. 感谢 C.1. MySQL AB处的开发人 C.2. MySQL贡献人 C.3. 资料员和译员 C.4. MySQL使用和包含的库 C.5. 支持MySQL的软件包 C.6. 用于创建MySQL的工具 C.7. MySQL支持人员 D. MySQL变更史 D.1. 5.1.x版中的变更情况(开发) D.1.1. 5.1.2版中的变更情况(尚未发布) D.1.2. 5.1.1版中的变更情况(尚未发布) D.2. MyODBC的变更情况 D.2.1. MyODBC 3.51.12的变更情况 D.2.2. MyODBC 3.51.11的变更情况 E. 移植到其他系统 E.1. 调试MySQL服务器 E.1.1. 针对调试编译MySQL E.1.2. 创建跟踪文件 E.1.3. 在gdb环境下调试mysqld E.1.4. 使用堆栈跟踪 E.1.5. 使用日志文件找出mysqld中的错误原因 E.1.6. 如果出现表崩溃,请生成测试案例 E.2. 调试MySQL客户端 E.3. DBUG软件包 E.4. 关于RTS线程的注释 E.5. 线程软件包之间的差异 F. 环境变量 G. MySQL正则表达式 H. MySQL中的限制 H.1. 联合的限制 I. 特性限制 I.1. 对存储子程序和触发程序的限制 I.2. 对服务器端光标的限制 I.3. 对子查询的限制 I.4. 对视图的限制 I.5. 对XA事务的限制 J. GNU通用公共许可 K. MySQL FLOSS许可例外 索引 图形清单 14.1. MySQL插件式存储引擎的体系结构 14.2. 存储引擎比较 16.1. MySQL体系结构 表格清单 26.1. 连接属性 26.2. 转换表 26.3. 用于ResultSet.getObject()的MySQL类型和Java类型 26.4. MySQL对Java编码名称的翻译 示例清单 26.1. 从DriverManager获得连接 26.2. 使用java.sql.Statement执行SELECT查询 26.3. 存储程序示例 26.4. 使用Connection.prepareCall() 26.5. 注册输出参数 26.6. 设置CallableStatement输入参数 26.7. 检索结果和输出参数值 26.8. 使用Statement.getGeneratedKeys()检索AUTO_INCREMENT列的值 26.9. 使用SELECT LAST_INSERT_ID()检索AUTO_INCREMENT列的值 26.10. 在可更新的ResultSets中检索AUTO_INCREMENT列的值 26.11. 设置Unix环境下的CLASSPATH 26.12. 与J2EE应用服务器一起使用连接池 26.13. 重试逻辑的事务示例 -------------------------------------------------------------------------------- 这是MySQL参考手册的翻译版本,关于MySQL参考手册,请访问dev.mysql.com。 原始参考手册为英文版,与英文版参考手册相比,本翻译版可能不是最新的。 This file is decompiled by an unregistered version of ChmDecompiler. Regsitered version does not show this message. You can download ChmDecompiler at : http://www.etextwizard.com/

590

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧