当前位置:Gxlcms > 数据库问题 > 马哥教育第二十二天IO模型理论、数据库基础理论、LAMP平台理论基础及mysql部署

马哥教育第二十二天IO模型理论、数据库基础理论、LAMP平台理论基础及mysql部署

时间:2021-07-01 10:21:17 帮助过:3人阅读


                 http或https都是基于tcp协议完成通讯。在tcp中使用socket通讯模型,在domain中界定socket是如何定义。
                           domain有三种工作类型:
                                        unix domain:每个socket地址是个文件路径
                                        ipv4 domain:每个socket是ipv4:port
                                         ipv6 domain:每个socket是ipv6:port
                        
                   函数和过程:有返回值为函数。无返回值的称为过程。 
                   I/O:进程调用请求发起之后是否会被挂起
                            阻塞:进程发起I/O调用,recvfrom未完成之前,进程会被挂起,在数据未完成前该进程不能做任何工作;
                            非阻塞:进程发起I/O调用,被调用函数完成不会阻塞当前进程,而是立即返回; 
                            同步:进程发起一个过程或函数调用后,在没有得到结果之前,该调用将不会返回;
                            异步:进程发起一个过程或函数调用后,即使被调用者不能立即结果准备好,但也会返回结果(未完成),内核通知调用者结果什么时候会OK;                             

                   5种I/O模型:
                             同步阻塞:进程发起I/O调用由用户模式转为内核模式,进程进入不可中断睡眠,内核准备数据,数据准备完成后把数据从内核内存复制到进程内存中,复制完成后唤醒进程,
                             同步非阻塞:进程发起I/O调用并处于忙等待状态,进程频繁和内核交互查询数据准备情况,内核数据准备好后,进程由非阻塞(忙等待过程中)转为阻塞状态等待内核复制数据到进程内存中才能继续工作
                             I/O复用:prefork工作于复用I/O模型,当I/O请求发给进程后,进程使用select调用子进程接收请求并阻塞请求I/O准备数据,数据准备完成后通知进程,并用recvform进行数据复制,进程用(select | poll)同时监控多个I/O,实现一个进程可以同时处理多个I/O,                                     信号驱动I/O:event 工作于信号驱动I/O,进程发起SIGIO(sigaction)调用,进程处于非阻塞状态,数据准备完成后会通知进程,并返回给请求I/O,请求I/O发起recvform进行数据复制
                             异步I/O:nginx支持异步I/O,I/O请求发给进程,进程使用aio传给内核,内核完成数据准备和数据复制后通知进程。该进程一直处于非阻塞模型,文件请求可以异步,网络I/O无法异步

                    sendfile和sendfile64:可以在内核中直接构建发送报文通过tcp响应客户端请求,实现静态文件直接内核响应

                    mmap():磁盘数据映射到内核内存中,在映射到进程内存中加快客户端请求响应

2、数据库基础理论
                    动态资源:读入数据,对数据加工,输出结果(html标记)
       
                    数据模型:层次模型、网状模型、关系模型

                    约束:主键、外键、组合主键

                    DBMS(database managemenet system)优点:
                                数据独立性
                                高效数据存取
                                数据完整性和安全性
                                数据管理
                                并发存储和故障恢复
                                开发周期缩短

3、MySQL理论基础及LAMP平台
                   关系型数据库:oracle、db2、sqlserver、mysql-->mariadb、postgresql

                    关系数据库的组件:
                                 库:表的集合,每个表都有一个惟一名字;
                                 表(关系):行(row, record, tuple)和列(field, column, attribute)

                     约束:候选键(码)、主键(primary key)、惟一键(unique key)、外键(foreign key):引用性约束
                     
                     关系型查询语言:SQL
                                 关系运算:
                                          选择:挑选出符合指定条件行
                                          投影:挑选出关心的列

                                 连接运算:
                                           笛卡尔积:从两个输入关系中输出所有的元组对(无论它们在共同的属性上取值是否相同),因此,也被称为交叉连接;
                                            自然连接: 从两个输入关系中输出这样的元组对:它们在相同的名字的所有属性上取值相同;

                      SQL语言有如下几个部分组成:
                                  数据定义语言:DDL(CREATE, DROP, ALTER, GRANT, REVOKE)
                                  数据操纵语言:DML(INSERT, DELETE, UPDATE, SELECT)
                                  事务控制:创建事务和结束事务

                       SQL的数据定义:
                                   创建关系,即创建表:
                                          每个关系模式;
                                          每个属性的取值类型;  
                                          完整性约束;
                                          索引的集合;
                                          表的安全性和权限信息;
                                          表的物理存储结构;
                                                    MyISAM: .frm, .MYD(数据), .MYI(索引)
                                                    InnoDB: .frm, .ibd(数据+索引)

                        SQL数据的类型:
                                     字符型:
                                                 固定长度的字符型:char
                                                 可变长度的字符型: varchar
                                       数值型:
                                                  整型:精确数值型(int) 
                                                   浮点型: 近似数值型(float、double) 

                        LAMP: Linux + apache(httpd) + php (php-myql)+ mysql    
                                    mysql: 3306/tcp     

                         httpd + php:
                                     php作为httpd的模块
                                         当php以模块化使用时,只需重新启动httpd
                                                /etc/httpd/conf.d/php.conf:主配置文件
                                                /usr/lib64/httpd/modules/libphp5.so:模块位置 
                                     httpd基于cgi协议与php通信
                                     php工作为一个服务器:httpd以fastcgi协议与php服务器进程进行通信
      
                         php的安装:
                                     rpm包、编译安装
                         开源php站点程序:
                                     wordpress
   &nbs

人气教程排行