MySQL Innodb存储引擎简介

Innodb做为第三方公司所开发的存储引擎,和MySQL遵守相同的开源License协议。

一、功能方面的特点

1、支持事务安全
Innodb在功能方面最重要的一点就是对事务安全的支持,这无疑是让Innodb成为MySQL最为流行的存储引擎之一的一个非常重要原因。而且实现了SQL92标准所定义的所有四个级别(READ UNCOMMITTED,READ COMMITTED,REPEATABLE READ 和 SERIALIZABLE)。对事务安全的支持,无疑让很多之前因为特殊业务要求而不得不放弃使用MySQL的用户转向支持MySQL,以及之前对数据库选型持观望态度的用户,也大大增加了对MySQL好感。

2、数据多版本读取
Innodb在事务支持的同时,为了保证数据的一致性以及并发时候的性能,通过对undo信息,实现了数据的多版本读取。

3、锁定机制的改进
Innodb改变了MyISAM的锁机制,实现了行锁。虽然Innodb的行锁机制的实现是通过索引来完成的,但毕竟在数据库中99%的SQL语句都是要使用索引来做检索数据的。所以,行锁定机制也无疑为Innodb在承受高并发压力的环境下增强了不小的竞争力。

继续阅读MySQL Innodb存储引擎简介

MySQL自带工具

1、mysql
mysql的功能和Oracle的sqlplus一样,为用户提供一个命令行接口来操作管理MySQL服务器。
不太常用但有用的参数:
1)-e, --execute=name参数
这个参数是告诉mysql,我只要执行“-e”后面的某个命令,而不是要通过mysql连接登录到MySQL Server上面。
mysql -uroot -p123456 -e "show databases"
2)-E, --vertical参数
登入之后的所有查询结果都将以纵列显示,效果和我们在一条query之后以“\G”结尾一样
3)--prompt=name参数
其主要功能是定制自己的mysql提示符的显示内容。在默认情况下,我们通过mysql登入到数据库之后,mysql的提示符只是一个很简单的内容“mysql>”,没有其他任何附加信息。非常幸运的是mysql通过“--prompt=name”参数给我们提供了自定义提示信息的办法,可以通过配置显示登入的主机地址,登录用户名,当前时间,当前数据库schema,MySQL Server的一些信息等等。
4)--tee=name参数
用来告诉mysql,将所有输入和输出内容都记录进文件。在我们一些较大维护变更的时候,为了方便被查,最好是将整个操作过程的所有输入和输出内容都保存下来。有了“--tee=name”参数,就再也不用通过copy屏幕来保存操作过程了。

继续阅读MySQL自带工具

MySQL处理sql语句过程

在MySQL中,将客户端请求分为了两种类型:
一种是query,需要调用Parser也就是Query解析和转发模块的解析才能够执行的请求;
一种是command,不需要调用Parser就可以直接执行的请求;

当客户端请求和连接线程“互换暗号(互通协议)”接上头之后,连接线程就开始处理客户端请求发送过来的各种命令(或者query),接受相关请求。

连接线程将收到的query语句转给Query解析和转发模块,Query解析器先对Query进行基本的语义和语法解析,然后根据命令类型的不同,有些会直接处理,有些会分发给其他模块来处理。

如果是一个Query类型的请求,会将控制权交给Query解析器。Query解析器首先分析看是不是一个select类型的query,如果是,则调用查询缓存模块,让它检查该query在query cache中是否已经存在。如果有,则直接将cache中的数据返回给连接线程模块,然后通过与客户端的连接的线程将数据传输给客户端。如果不是一个可以被cache的query类型,或者cache中没有该query的数据,那么query将被继续传回query解析器,让query解析器进行相应处理,再通过query分发器分发给相关处理模块。

继续阅读MySQL处理sql语句过程

项目管理案例讨论9

某地区政府部门建设一个面向公众服务的综合性网络应用系统,对现有的零散管理系统和服务平台进行重组和整合,整个项目由政府的信息中心负责统一规划分期建设,由各共建单位的主要领导组成了领导小组,招标选择了监理公司全程监理建设过程。一期重点建设了社保、民政和交换中心三个应用系统。

建设过程中由于机构改革、职能需要重新定位等原因,《需求规格说明书》始终找不到最终用户签字,在监理方和承建单位的一再努力下,只有一个共建单位的主管领导在该子系统的需求分析上签字确认。为了赶进度,承建单位决定先行设计和实施,监理方认为可以理解且就目前的实际情况而言,也只好默许。

工程竣工验收时,承建单位向监理单位提交了验收申请,并将竣工验收所需的全部资料报送监理单位,申请竣工验收。总监理工程师认为系统已经过初验和 3 个月的试运行,并且运行情况良好,随即对验收申请予以签字,并协助建设单位进行后续的验收工作。

[问题1]竣工验收时,总监理工程师在执行验收程序方面的做法正确吗?
不正确
正确的做法是:承建单位提出验收申请后,监理单位(或总监理工程师)应该首先对其验收计划和验收方案进行审查。主要审查内容包括验收目标、各方责任、验收内容、验收标准和验收方式。

继续阅读项目管理案例讨论9

MySQL物理文件组成

一、日志文件

1、错误文件
默认以hostname.err命名

2、二进制日志文件
mysql-bin.000005

3、慢查询日志
mysqldb01-slow.log

4、mysql-bin.index文件
(binary log index)的功能是记录所有Binary Log的绝对路径,保证MySQL各种线程能够顺利的根据它找到所有需要的Binary Log文件

二、数据文件
在MySQL中每一个数据库都会在定义好(或者默认)的数据目录下存在一个以数据库名字命名的文件夹,用来存放该数据库中各种表数据文件

继续阅读MySQL物理文件组成

项目管理案例讨论8

某信息系统项目包含如下十个活动。
活动的历时、活动逻辑关系如下图所示:

[问题1]该项目的关键路径和总工期是多少?
关键路径:ADCEIJ;总工期为21天

[问题2]活动E、G的总浮动时间和自由浮动时间是多少?

在项目开始前,客户希望将项目工期压缩为19天,并愿意承担所发生的所有额外费用,经过对各项活动的测算发现,只有活动B、D、I有可能缩短工期,其余活动均无法缩短工期,活动B、D、I最多可缩短的天数及额外费用如下:

[问题3]在此要求下,请计算出费用最少的工期压缩方案及额外增加的费用?
思路:B没必要减少,ABCEHJ19天,ABCEIJ20天可以减少关键路径I一天,D和I都是关键路径,D费用少一些
压缩方案:D压缩一天并增加费用2500元,I压缩一天并增加费用3000元,需额外增加5500元

项目管理案例讨论7

某公司近年随着项目增多,公司决定开发自己的生产线,为了快速建立自己的生产工艺流程,聘任了有研发设计经验的小张来担任生产部经理
小张通过招聘、内部挖潜等方式建立了自己的生产团队,涵盖了采购、质检、生产等各个环节专业人员,开始组织生产。
在生产过程中,小张发现改动某项设计,产品性能会有提升,于是经常习惯性地在生产过程中就进行了更改,未走设计变更流程(公司早已下发变更流程)。
在项目实施过程中,总会出现一些质量问题,有时较为严重会出现质量事故。
事故追责小组调查发现,生产制造的图纸与提交的管理图纸不一致,有不同程度的改动。生产制造的图纸是会从研发部最新的图纸调取来转入生产;而从研发调用的图纸,生产过程中生产人员又进行了改动(原则上没有更改权限),更改后图纸没有经过评审,因为生产经理总是认为小改动不需要组织评审,耗时耗力。这样就造成研发人员图纸更新不及时,导致研发、生产、综合部归档资料不一致。

继续阅读项目管理案例讨论7

CentOS7 安装nginx

1、依赖包
yum install gcc gcc-c++ autoconf automake make pcre pcre-devel zlib zlib-devel

2、编译
下载nginx源代码包,解压后编译
./configure --prefix=/appserver/nginx
make && make install

3、建立配置文件


cd /appserver/nginx
mkdir include
vi proxy.conf

输入:

upstream proxy_tomcat {
        server 192.168.52.9:8080;
}
server {
        location /tomcat/ {
        proxy_pass http://proxy_tomcat/;
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        client_max_body_size 10m;
        client_body_buffer_size 128k;
        proxy_connect_timeout 300;
        proxy_send_timeout 300;
        proxy_read_timeout 300;
        proxy_buffer_size 4k;
        proxy_buffers 4 32k;
        proxy_busy_buffers_size 64k;
        proxy_temp_file_write_size 64k;
        }
        location /okfep/ {
        proxy_pass http://proxy_tomcat/okfep;
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        client_max_body_size 10m;
        client_body_buffer_size 128k;
        proxy_connect_timeout 300;
        proxy_send_timeout 300;
        proxy_read_timeout 300;
        proxy_buffer_size 4k;
        proxy_buffers 4 32k;
        proxy_busy_buffers_size 64k;
        proxy_temp_file_write_size 64k;
        }

}

4、nginx.conf添加include


http {

    include       ../include/*.conf;

    include       mime.types;
    default_type  application/octet-stream;
......
}

5、nginx.conf修改nginx启动用户


......
user  root;
worker_processes  1;
......

项目管理案例讨论6

小张是 XYZ 信息系统集成公司的项目经理,负责一电子政务项目的管理。李先生是甲方负责该项目的项目经理。

一次,小张邀请李先生出去吃饭,同行的还有双方的部分团队成员。几杯酒过后,小张团队有两名成员由项目的技术架构开始争论,进而抱怨项目的激励政策,最后开始攻击 XYZ 公司,指出其人力资源管理方面的诸多问题。

小张感到非常没面子,认为在外人面前贬低团队和公司是一种非常恶劣的行为。事后,这两名队员打电话给李先生,声称他们负责的模块含有“逻辑炸弹”代码。
这件事给小张负责的项目造成了很大的被动。

继续阅读项目管理案例讨论6

项目管理案例讨论5

【案例背景】

小张是某公司的项目经理,他一直为安排下属工作而感到苦恼,主要在以下几个方面:
1.安排好的工作,员工做的结果与小张预期的结果相差较大,每次提交上来的结果,小张都必须重新整理,有些甚至需要重做;

2.员工做事情时,小张因为工作忙,所以不能去检查每个人的工作,但员工从来不主动报告进展情况,所以稍微没注意,原本安排好的事情就不能按时完成;

3.每次对员工考核时,不知道该怎么进行考核,因为所有的人员感觉都没有很好的完成他们的工作,但每一个人都有很充分的理由推卸责任;

4.因为公司业务扩大,小张需要同时管理两个项目,原来一个项目都精疲力尽,如果再加一个项目,小张不敢想象工作会如何….

[问题1]导致这种情况出现的原因是什么?

1.问题出在安排工作的规范上,需求不够规范或描述过于自我,没有站在对方的理解角度去描述
2.沟通机制不清晰,或权重不足,造成团队成员不重视项目或领导权威
3.没有主动建议建立考核机制,导致团队没有明确绩效目标
4.没有分权给合适的人去分担管理压力
5.员工做的不好的工作他会帮忙“擦屁股”,这会无意中增加员工的依赖性

[问题2]小张该怎么解决这种情况呢?
1.确认项目整体绩效,签订绩效任务书或项目任务书(项目章程、会议纪要都可以);
2.确定责任分配矩阵,规范工作流程和标准,考核一定要清晰明确和可量化的验收标准
3.制定具体的沟通规则和频次,如统一的工作汇报模板,日报或周报等;或使用管理工具把控任务进展
4.团队中注意分权,比如对于项目绩效,可以设立绩效负责人对阶段性进行考核,和绩效负责人进行一对一沟通做改进事项记录和调整

软件及互联网爱好者