get 和 post 的区别

get在浏览器回退时是无害的,而post会再次请求

get产生的url地址可以被收藏,而post不会

get请求参数会被整数保留在浏览历史记录里,而post中的参数不会被保留

get请求在url中传送的参数有长度限制,而post没有

get参数通过url传递,post放在request body中

innoDB 和 MYISAM 的区别

MyISAM是MySQL的默认数据库引擎(5.5版之前).

5.5版本之后,MySQL数据库引擎默认InnoDB。

1) 事务支持

MyISAM不支持事务,是非事务安全型的,而InnoDB支持,是事务安全型的。InnoDB的AUTOCOMMIT默认是打开的,即每条SQL语句会默认被封装成一个事务,自动提交,这样会影响速度,所以最好是把多条SQL语句显示放在begin和commit之间,组成一个事务去提交。

2) 存储结构

MyISAM:每个MyISAM在磁盘上存储成三个文件。第一个文件的名字以表的名字开始,扩展名指出文件类型。.frm文件存储表定义。数据文件的扩展名为.MYD (MYData)。索引文件的扩展名是.MYI (MYIndex)。

InnoDB:所有的表都保存在同一个数据文件中(也可能是多个文件,或者是独立的表空间文件),InnoDB表的大小只受限于操作系统文件的大小,一般为2GB。

3) 存储空间

MyISAM:可被压缩,存储空间较小。

InnoDB:需要更多的内存和存储,它会在主内存中建立其专用的缓冲池用于高速缓冲数据和索引。

4) 可移植性、备份及恢复

MyISAM:数据是以文件的形式存储,所以在跨平台的数据转移中会很方便。在备份和恢复时可单独针对某个表进行操作。

InnoDB:免费的方案可以是拷贝数据文件、备份 binlog,或者用 mysqldump,在数据量达到几十G的时候就相对痛苦了。

5) 表锁差异

MyISAM:只支持表级锁,用户在操作myisam表时,select,update,delete,insert语句都会给表自动加锁,如果加锁以后的表满足insert并发的情况下,可以在表的尾部插入新的数据。

InnoDB:支持行级锁,是innodb的最大特色。行锁大幅度提高了多用户并发操作的新能。但是InnoDB的行锁,只是在WHERE的主键是有效的,非主键的WHERE都会锁全表的。

6) 全文索引

MyISAM:支持(FULLTEXT类型的)全文索引

InnoDB:不支持(FULLTEXT类型的)全文索引,但是innodb可以使用sphinx插件支持全文索引,并且效果更好。

7) 表主键

MyISAM:允许没有任何索引和主键的表存在,索引都是保存行的地址。

InnoDB:如果没有设定主键或者非空唯一索引,就会自动生成一个6字节的主键(用户不可见),数据是主索引的一部分,附加索引保存的是主索引的值。InnoDB的主键范围更大,最大是MyISAM的2倍。

8) 表的具体行数

MyISAM:保存有表的总行数,如果select count() from table;会直接取出出该值。

InnoDB:没有保存表的总行数(只能遍历),如果使用select count() from table;就会遍历整个表,消耗相当大,但是在加了wehre条件后,myisam和innodb处理的方式都一样。

9)增删改查操作

MyISAM:如果执行大量的SELECT,MyISAM是更好的选择。

InnoDB:如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表。DELETE 从性能上InnoDB更优,但DELETE FROM table时,InnoDB不会重新建立表,而是一行一行的删除,在innodb上如果要清空保存有大量数据的表,最好使用truncate table这个命令。

10)外键

MyISAM:不支持

InnoDB:支持

MyISAM和InnoDB两者的应用场景:

MyISAM管理非事务表。它提供高速存储和检索,以及全文搜索能力。如果应用中需要执行大量的SELECT查询,那么MyISAM是更好的选择。

InnoDB用于事务处理应用程序,具有众多特性,包括ACID事务支持。如果应用中需要执行大量的INSERT或UPDATE操作,则应该使用InnoDB,这样可以提高多用户并发操作的性能。

唯一约束 和 主键约束 的区别

他们都属于完整的约束

唯一性约束所在的列允许控制,但是主键约束所在的列不允许空值

可以把唯一性约束放在一个或者多个列上这些列或列的组合必须有唯一的 但是唯一性约束所在的列并不是表的主键列

唯一性约束强制在指定的列上创建一个唯一性索引,在默认情况下创建唯一性的非聚集索引。主键约束产生聚集索引

建立主键的目的是让外键来引用

一个表最多只有一个主键,但可以有很多唯一键

delete 和 truncate 的区别

DELETE语句后面可以跟WHERE子句,通过指定WHERE子句中的条件表达式只删除满足条件的部分记录,

而TRUNCATE语句只能用于清空表中的所有记录。

使用TRUNCATE语句删除表中的数据后,再次向表中添加记录时,

自动增加字段的默认初始值重新由1开始,而使用DELETE语句删除表中的记录时,不影响自动增长值。

cookie的特点

存储在客户端

cookie 是一个文件

浏览器限制cookie的大小和数量 一般不超过4k 限制 50

cookie在http消息中是明文传输 所以安全性不高

cookie被附加在http消息中 无形中增加了数据流量

include,require,include_once,require_once 的作用和区别?

Include和require都是一种连接方式

区别就是 include只会被解析一次 而require每打开一次浏览器就会被解析一次

Include如果引入的文件是错误 它会生成警告,并且继续运行脚本

Require 如果引入的文件是错误 它会生成致命错误,并且停止脚本运行

字符串有哪三种定义方式?这三种定义方式的区别是什么?

“” ‘’ <<<

单引号不可以解析变量,双引号可以解析变量

单引号比双引号的效率高

双引号里如果有单引号那里面的变量也会被解析

双引号的变量名后边必须有一个非数字字母下划线的特殊字符给隔开,否则会认为是一个变量bh

having 和 where 的区别?

having 与 where 虽然作用相同,但是他们还是有一定的区别,having 关键字后可以跟聚合函数,而where 则不可以 通常情况下 having 关键字与group by 一起使用,对分组后的结果进行过滤。

都是过滤,都是在select 之前执行

where 过滤的是记录,可以跟任意列名 ,可以跟单行函数,不能跟组函数

having 过滤的是分组,可以跟组标识,可以跟组函数,不能跟单行函数

查询语句的顺序?

select 字段1,字段2,字段3 from 表名 where 条件表达式1 group by 字段名,having 条件表达式2 order by 字段名 asc/desc limit

关系型数据库 优缺点

mysql

sql server

oracle

关系型数据库最典型的数据结构是表,由二维表及其之间的联系,所组成的一个数据组织

优点:

易于维护:都是使用表结构格式一致。

使用方便:sql语言通用 可用于复杂查询。

复杂操作:支持sql可用于一个表及多个表之间非常复杂的查询

缺点:

4. 读写性能比较差,尤其是海量数据的高效率读写。

5. 固定的表结构 灵活度稍欠

6. 高并发读写需求 传统关系数据库来说 硬盘110是一个很大的瓶颈

非关系型数据库

mongoDB

非关系型数据库严格上不是一种数据库应该是一种数据结构化存储方法的集合,可以是文档或者键值对等。

优点:

格式灵活 存数据的格式可以是key value 形式,文档型图片形式等。使用灵活 应用场景广泛,而关系型数据库则只支持基础类型。

速度快,nosql可以使用硬盘或者随机存储器 作为载体 而关系型数据库则只能用硬盘。

高扩展性。

成本低:nosql 数据库部署简单,基本都是开源载体

缺点:

不提供sql支持,学习和使用成本较高

无事务处理

数据结构相对复杂查询方面稍欠

说说Cookie和Session的区别?

1、Cookie和Session都是会话技术,Cookie是运行在客户端,Session是运行在服务器端。

2、Cookie有大小限制以及浏览器在存cookie的个数也有限制,Session是没有大小限制和服务器的内存大小有关。

3、Cookie有安全隐患,通过拦截或本地文件找得到你的cookie后可以进行攻击。

4、Session是保存在服务器端上会存在一段时间才会消失,如果session过多会增加服务器的压力。

session原理:

1、session是保存在服务器端,理论上是没有是没有限制,只要你的内存够大

2、浏览器第一次访问服务器时会创建一个session对象并返回一个JSESSIONID=ID的值,

创建一个Cookie对象key为JSSIONID,value为ID的值,将这个Cookie写回浏览器

3、浏览器在第二次访问服务器的时候携带Cookie信息JSESSIONID=ID的值,如果该JSESSIONID的session已经销毁,

那么会重新创建一个新的session再返回一个新的JSESSIONID通过Cookie返回到浏览器

4、针对一个web项目,一个浏览器是共享一个session,就算有两个web项目部署在同一个服务器上,针对两个项目的session是不同的

如:你在tomcat上同时部署了两个web项目,分别是web1、web2。当你在一个浏览器上同时访问web1时创建的session是A1,访问web2时创建的session是A2。

后面你再多次访问web1使用的session还是A1,多次访问web2时使用session就是A2

5、session是基于Cookie技术实现,重启浏览器后再次访问原有的连接依然会创建一个新的session,

因为Cookie在关闭浏览器后就会消失,但是原来服务器的Session还在,只有等到了销毁的时间会自动销毁

6、如果浏览器端禁用了Cookie,那么每次访问都会创建一个新的Session,但是我们可以通过服务器端程序重写URL即可,如果页面多连接多,会增加不必要的工作量,

面向过程:

以事件为中心的编程思想

分析出解决问题的步骤

函数(最小单位)一步步实现

使用的时候一个个以此调用就可以了

面向对象:

以功能来划分问题,而不是步骤

注重的是对象和对象的使用

只有面向对象的程序,才真正的符合人类的思维逻辑

面向对象的好处:

可读性

可重用性

扩展性

稳定性

维护性

可测试性

构造方法:__construct

是对象创建完成以后,第一自动调用的方法

是给对象中的成员赋初始值用的

析构方法:__destruct

对象释放前自动调用的方法

析构方法没有参数

类和对象的关系

1、类的概念

1)类就是分类、类别、模板、概念等,类是无形的、看不见、摸不着,不实际存在的。

2)类是具有相同属性和行为的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和行为两个主要部分。例如:所有在学校学习的人,具有相同的属性:学号、姓名、性别等;具有相同的行为:学习。所以,这些人构成一个类,即学生类。

2、对象的概念

1)客观世界中任何一个事物都可以看成一个对象,对象看得见、摸得着,实际存在的。

2)对象是构成系统的基本单位。任何一个对象都应具有这两个要素:属性(Attribute)和行为(Behavior)。例如:学生“张三”是一个对象,他有属性:学号、姓名、性别等;行为有:学习、吃饭等。

3)对象来自于某个类,对象不能单独存在。一个类可以产生千千万万个对象。

4)对象和类的关系是,对象是类的实例,类是对象的模板。

5)类是抽象的,几乎不占用内存,而对象是具体的,占用存储空间。

php mysql 学习周期_学习PHPMYSQL到目前为止 所有的区别特点相关推荐

  1. 数据科学学习心得_学习数据科学

    数据科学学习心得 苹果 | GOOGLE | 现货 | 其他 (APPLE | GOOGLE | SPOTIFY | OTHERS) Editor's note: The Towards Data S ...

  2. linux 下外语学习软件_学习外语如何帮助您学习编码

    linux 下外语学习软件 The road to becoming a software developer is a long and difficult one, especially for ...

  3. 物联网课程学习目标_学习攻略|软件工程统计方法amp;amp;物联网

    软件工程统计方法 && 物联网 任课老师:余松森,葛红 课程特点及困难 本课程的主要内容涉及统计机器学习方法, 以及如何采用Python进行应用实现. 同学们在学习中主要遇到以下问题: ...

  4. 用vb删除mysql数据库数据_学习VB编程第99天,如何正确使用delete删除数据

    今天学习的主要内容是刘金玉老师MySQL数据库零基础教程第12期. 一.删除数据语法结构 语法一:Delete from 数据表名称[where语句筛选]: 语法二:delete a,b,c from ...

  5. 大数据业务学习笔记_学习业务成为一名出色的数据科学家

    大数据业务学习笔记 意见 (Opinion) A lot of aspiring Data Scientists think what they need to become a Data Scien ...

  6. 数据科学学习心得_学习数据科学时如何保持动力

    数据科学学习心得 When trying to learn anything all by yourself, it is easy to lose motivation and get thrown ...

  7. 围棋学习软件_学习围棋-从零到英雄

    围棋学习软件 Let's start with a small introduction to Go (or Golang). Go was designed by Google engineers ...

  8. lucene学习笔记_学习Lucene

    lucene学习笔记 我目前正在与一个团队合作,开始一个基于Lucene的新项目. 虽然大多数时候我会争论使用Solr还是Elasticsearch而不是简单的Lucene,但这是一个有意识的决定. ...

  9. web后端开发学习路线_学习后端Web开发的最佳方法

    web后端开发学习路线 My previous article described how you can get into frontend development. It also discuss ...

最新文章

  1. 神经网络谐振子模型的一组数据
  2. State_状态模式_PHP语言描述
  3. 如何在 Ubuntu 中安装和删除软件
  4. python中字符串方法总结
  5. 谭浩强 C程序设计(第五版)
  6. 程序员的炫酷动态科幻桌面壁纸
  7. Android4,flutter插件引用第三方库
  8. matlab sfp,eeglab工具箱
  9. 交换机芯片笔记1.1
  10. 黄金分割法求解局部最小值——python实现
  11. Zabbix 3.0 监控Web [七]
  12. 怎么查看邮件服务器25端口,如何避免邮件服务器25端口被攻击
  13. mysql 丢失msvcr120.dll_安装MySQL数据库提示计算机中丢失MSVCR120.dll文件
  14. [ecshop 资料] ecshop 手机 自动识别 ua 自动跳转到手机版本 miqinew ecmoban
  15. HBulider 连接手机,在手机端展示
  16. R7800评测 转帖自http://gric.pixnet.net/blog/post/113779838/3
  17. Unity3d 中 PlayerPrefs 保存数据的总结
  18. java赛马游戏_Java小程序赛马游戏实现过程详解
  19. XGBoost的原理、公式推导
  20. Hevc Cabac(一)

热门文章

  1. Django项目部署到Linux后,上传文件的时候,mkdirs创建目录OSError - Errno 13 Permission denied
  2. java memorystream 包_存储在MemoryStream中的裁剪图像中心
  3. 动态规划(三)——最少硬币和所有硬币问题
  4. 字符串匹配(一)—— KMP / MP
  5. rocketmq常用命令
  6. 全面解析resultType和resultMap的区别
  7. 体系结构方案 -ETL 中间件
  8. 利用Python定时给女友微信发送今日天气情况,异地恋维护感情神器
  9. spring配置jdbc连接oracle,mysql,sqlserver
  10. 专业上需要加强的地方