1. 请简洁描述 MySQL 中 InnoDB 支持的四种事务隔离级别名称,以及逐级之间的区别?
SQL 标准定义的四个隔离级别为:
read uncommited
:读到未提交数据read committed
:脏读,不可重复读repeatable read
:可重读serializable
:串行事物2. 在 MySQL 中 ENUM 的用法是什么?
ENUM 是一个字符串对象,用于指定一组预定义的值,并可在创建表时使用。
SQL 语法如下:
Create table size(name ENUM('Smail,'Medium','Large');
3. CHAR 和 VARCHAR 的区别?
CHAR 和 VARCHAR 类型在存储和检索方面有所不同。
CHAR 列长度固定为创建表时声明的长度,长度值范围是 1 到 255。 当 CHAR 值被存储时,它们被用空格填充到特定长度,检索 CHAR 值时需删除尾随空格。
4. MySQL列的字符串类型可以是什么?
字符串类型是:
5. MySQL 中使用什么存储引擎?
存储引擎称为表类型,数据使用各种技术存储在文件中。
技术涉及:
6. TIMESTAMP 在 UPDATE CURRENT_TIMESTAMP 数据类型上做什么?
创建表时 TIMESTAMP 列用 Zero 更新。只要表中的其他字段发生更改,UPDATE
CURRENT_TIMESTAMP 修饰符就将时间戳字段更新为当前时间。
7. 主键和候选键有什么区别?
表格的每一行都由主键唯一标识, 一个表只有一个主键。
主键也是候选键。按照惯例,候选键可以被指定为主键,并且可以用于任何外键引用。
8. MySQL 数据库服务器性能分析的方法命令有哪些?
Show status
一些值得监控的变量值:
Bytesreceived
和 Bytessent
和服务器之间来往的流量。
Com
服务器正在执行的命令。
Created
在查询执行期间创建的临时表和文件。
Handler
存储引擎操作。
Select
不同类型的联接执行计划。
Sort_*
几种排序信息。
Show session status like ‘Select’;
Show profiles SETprofiling=1;
Show profiles\G Show profile;
9. LIKE 和 REGEXP 操作有什么区别?
LIKE
和 REGEXP
运算符用于表示 ^ 和%。
SELECT * FROM <tablename> WHERE * REGEXP "^b";
SELECT * FROM <tablename> WHERE * LIKE "%b";
10. BLOB 和 TEXT 有什么区别?
BLOB
是一个二进制对象,可以容纳可变数量的数据。有四种类型的 BLOB
TINYBLOB
BLOB
MEDIUMBLOB 和
LONGBLOB
它们只能在所能容纳价值的最大长度上有所不同。
TEXT
是一个不区分大小写的 BLOB。四种 TEXT 类型
TINYTEXT
TEXT
MEDIUMTEXT
LONGTEXT
它们对应于四种 BLOB 类型,并具有相同的最大长度和存储要求。
BLOB 和TEXT类型之间的唯一区别在于对 BLOB 值进行排序和比较时区分大小写,对 TEXT值不区分大小写。
11. 数据库的三范式?
第一范式:数据库表的每一个字段都是不可分割的。
第二范式:数据库表中的非主属性只依赖于主键。
第三范式:不存在非主属性对关键字的传递函数依赖关系。
12. MySQL表中允许有多少个TRIGGERS?
在MySQL表中允许有六个触发器,如下:
13. 什么是通用 SQL 函数?
数学函数
Abs(num)求绝对值
floor(num)向下取整
ceil(num)向上取整
字符串函数
insert (s1,index,length,s2) 替换函数
14. MySQL 中有哪几种锁?
MyISAM
支持表锁,InnoDB
支持表锁和行锁,默认为行锁。
表级锁:开销小,加锁快,不会出现死锁。锁定粒度大,发生锁冲突的概率最高,并发量最低。
行级锁:开销大,加锁慢,会出现死锁。锁力度小,发生锁冲突的概率小,并发度最高。
15. MySQL 数据优化
优化数据类型
NULL
,NULL 需要特殊处理, 大多数时候应该使用 NOT NULL
,或者使用一个特殊的值,如 0,-1 作为默认值。 小心字符集转换
_优化 count(mycol) 和 count()*
优化子查询
优化 UNION
UNION
是一个有趣的优化方法,UNION从两个互不关联的表中返回数据,这就意味着不会出现重复的行,同时也必须对数据进行排序,我们知道排序是非常耗费资源的,特别是对大表的排序。UNION ALL
可以大大加快速度,如果你已经知道你的数据不会包括重复行,或者你不在乎是否会出现重复的行,在这两种情况下使用UNION ALL 更适合。此外,还可以在应用程序逻辑中采用某些方法避免出现重复的行,这样 UNION ALL 和 UNION 返回的结果都是一样的,但 UNION ALL 不会进行排序。16. MySQL 的关键字
alter table tableName add 索引(索引字段)
primary key
unique
fulltext
index
index index_name
BDB
。次锁定相邻的一组记录。MyISAM
,理解为锁住整个表,可以同时读,写不行。INNODB
,单独的一行记录加锁,对指定的记录进行加锁,这样其它进程还是可以对同一个表中的其它记录进行操作。 表级锁速度快,但冲突多,行级冲突少,但速度慢。17. 存储引擎
存储引擎说白了就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数
据等技术的实现方法。
MyISAM:这种引擎是 mysql 最早提供的。这种引擎又可以分为静态MyISAM、动态 MyISAM 和压缩 MyISAM 三种:
optimize table
命令或优化工具来进行碎片整理。myisamchk
工具压缩。这种类型的表进一步减小了占用的存储,但是这种表压缩之后不能再被修改。另外,因为是压缩数据,所以这种表在读取的时候要先时行解压缩。但是,不管是何种 MyISAM 表,目前它都不支持事务,行级锁和外键约束的功能。 MyISAM Merge 引擎:这种类型是 MyISAM 类型的一种变种。合并表是将几个相同的 MyISAM 表合并为一个虚表。常应用于日志和数据仓库。
InnoDB:InnoDB 表类型可以看作是对 MyISAM 的进一步更新产品,它提供了事务、行级锁机制和外键约束的功能。
memory(heap):这种类型的数据表只存在于内存中。它使用散列索引,所以数据的存取速度非常快。因为是存在于内存中,所以这种类型常应用于临时表中。
archive:这种类型只支持 select 和 insert 语句,而且不支持索引。
Describe tablename:查看数据表的结构。
show engines:命令可以显示当前数据库支持的存储引擎情况。
18. 数据库备份
必须要在未登录状态下
导出整个数据库
mysqldump -u 用户名 -p 数据库名 > 导出的文件名
导出一个表
mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
导出一个数据库结构
mysqldump -u dbuser -p -d --add-drop-table
dbname >d:/dbname_db.sql
/**-d 没有数据 --add-drop-table 在每个 create 语句之前增加一个 drop table*/
19. truncate delete drop 的区别
drop
(DDL语句):是不可逆操作,会将表所占用空间全部释放掉;
truncate
(DDL语句):只针对于删除表的操作,在删除过程中不会激活与表有关的删除触发器并且不会把删除记录放在日志中;当表被 truncate 后,这个表和索引会恢复到初始大小;
delete
(DML语句):可以删除表也可以删除行,但是删除记录会被计入日志保存,而且表空间大小不会恢复到原来;
执行速度:drop>truncate>delete。
20. Redis 是什么?两句话做一下概括
strings
、map
、list
、sets
、sorted sets
。Memcached
的替代者来使用。21. Redis(管道,哈希)
master-slave
模式的数据备份。22. Redis 实现原理或机制
presharding
的技术对此是有帮助的。23. Redis 有两种类型分区
Pre-Sharding
的方式:slaveof no one
),主库变为其从库(使命令 slaveof IP PORT
),这样才能保证修复期间新增数据的一致性。24. 什么是 MongoDB
非关系型数据库 (NoSql
),Mongo DB 很好的实现了面向对象的思想 (OO 思想), 在MongoDB中每一条记录都是一个Document
对象。MongoDB 最大的优势在于所有的数据持久操作都无需开发人员手动编写 SQL 语句, 直接调用方法就可以轻松的实现CRUD 操作.
25. MongoDB 特点
高性能、易部署、易使用,存储数据非常方便。
主要功能特性有:
BSON
(一种 JSON 的扩展)。26. MongoDB 的功能
27. MongoDB 的适用场景
MapReduce
引擎的内置支持。28. Redis、memcache、MongoDB 对比
mongodb
和 memcached
不是一个范畴内的东西。mongodb 是文档型的非关系型数据库,其优势在于查询功能比较强大,能存储海量数据。
和 memcached 更为接近的是 Redis。它们都是内存型数据库,数据保存在内存中,通过 tcp
直接存取,优势是速度快,并发高,缺点是数据类型有限,查询功能不强,一般用作缓存。
LRU
算法。29. Redis 有什么用?
只有了解了它有哪些特性,我们在用的时候才能扬长避短,为我们所用。
9. 速度快:使用标准 C 写,所有数据都在内存中完成,读写速度分别达到 10万 / 20万。
2.持久化:对数据的更新采用 Copy-on-write
技术,可以异步地保存到磁盘上,主要有两种策略,一是根据时间,更新次数的快照(save 300 10 )二是基于语句追加方式(Append-only file,aof) 。
10. 自动操作:对不同数据类型的操作都是自动的,很安全。
11. 快速的主-从复制,官方提供了一个数据,Slave 在 21 秒即完成了对Amazon 网站 10G key set 的复制。
12. Sharding 技术: 很容易将数据分布到多个 Redis 实例中,数据库的扩展是个永恒的话题,在关系型数据库中,主要是以添加硬件、以分区为主要技术形式的纵向扩展解决了很多的应用场景,但随着 web2.0、移动互联网、云计算等应用的兴起,这种扩展模式已经不太适合了,所以近年来,像采用主从配置、数据库复制形式的,Sharding 这种技术把负载分布到多个特理节点上去的横向扩展方式用处越来越多。
这里对 Redis 数据库做下小结
文章浏览阅读1.2k次。mybatisplus模糊查询中文时 有数据但 like查不到原因是数据库的配置没有配置UTF-8_gis模糊查询like用不了
文章浏览阅读1.2w次,点赞9次,收藏34次。从整体上看,程序员的职业发展可以分为 4 条路线,分别是工作、SOHO、创业和投资,它们的难度逐次递增,人生阶层也逐次递增。当然这个路线也不是固定的,可能随时切换,比如你放弃了工作可以 SOHO,你创业失败了可以继续工作。除了程序员,基本所有职业的发展路线都可以分为这 4 种。我们先给出程序员职业发展的详细路线图,并把它们放在不同的象限中,然后再详细说明一下各个方向。注:此图改编自《程序员必读的职业规划书》中分享的一张图1. 工作这是大部分程序员都会选择的职业发展路线,即使那些功成名就的程序员,_程序员职业规划路线
文章浏览阅读6k次。mysql 在计算avg() 时 会自动将null值过滤掉不参与计算,因为NULL与数字不同0。从概念上讲,它NULL意味着“缺失的未知值”,并且与其他值的处理方式略有不同。这就是像ignore s 这样的聚合函数。AVG()NULLAVG()仅计算所有已知值的平均值。(=不是NULL =未知)来自MySQL文档:除非另有说明,否则组函数会忽略NULL值。另外,请阅..._avg null
文章浏览阅读1.2w次。今天上午,我编辑文章时,发现不能正常上传图片了一开始感觉很奇怪,因为昨天我用着还正常,想到昨天我对我的电脑的安全环境进行了全面的检查和修复,感觉是因为我的电脑环境的问题。百度了一下,答案有很多,大都是建议修改ueditor编辑器的配置,或者检查一下服务器的文件目录的权限设置。查看一下服务器目录文件的权限设置,没发现什么问题。至于修改网站程序,我感觉不是太靠谱,先排查一下吧。我用ftp打开网站空间,..._ce1启动操作超时,请检查与服务器的链接后重试
文章浏览阅读1.1k次。TCN时间卷积神经网络数据回归预测(多输入单输出)完整的代码,方可运行;可提供运行操作视频!适合小白!_时间卷积神经网络(tcn)输入层
文章浏览阅读509次。基于DPDK抓包的Suricata版本只更新到4.1.4,因此对DPDK版本有要求,经过测试推荐使用 DPDK-19.11.14。由于服务器开关机会导致DPDK绑定的网卡会被默认解绑,为简化重新机械的绑定工作,通过shell脚本实现自动化DPDK绑定网卡。DPDK官网下载地址:http://fast.dpdk.org/rel/dpdk-19.11.14.tar.gz。7 [root@ids-dpdk ~]# ls /usr/src/kernels/ #查看有没有相应的内核开发包。_使用suricata-5.0.3离线分析pcap包
文章浏览阅读277次。[url=http://select.yeeyan.org/view/213582/202991]针对多点触控浏览器进行的开发[/url]在本文中,我会深入研究iOS和Android设备提供的触摸事件API,探索一下可以构建哪些类型的应用,给出一些最佳做法,并论及一些使得可触控应用(touch-enabled application)的开发变得更加容易的有用技术。前言诸如智能手..._ubuntu 多点触控开发
文章浏览阅读385次。一公司领导通知员工公司准备对全体员工做出降薪30%的决定,对此该公司员工表示不同意,一名程序员发帖怒怼:为了不让领导做如此艰难的决定,所以本人表示拒绝。2018年受金融大环境的影响,众多企业不可避免的进入了行业低迷期,这一年对我们来说,也是无比艰难,困难重重。为了尽快走出困境,公司只能开源节流,降低各项成本与开支。结合公司现状,也考虑到总体行业不景气,再就业困难等实际情况,公司领导做出了非常艰..._开源节流吐槽
文章浏览阅读2.8k次。关于昨天的送书活动,已经在截止时间进行了截图(请直接拉到文末),以下点赞top5的同学请加我微信哈(后台输入“好友”即可获取方式),若明天中午前未添加好友就会顺位下一位朋友哈~导读:在互..._日全量表
文章浏览阅读287次。环境CentOS7.2 (安装镜像CentOS-7-x86_64-DVD-1611)目标在CentOS7.2上安装jdk1.8(tar.gz安装包),并配置环境变量jdk安装在/home/soft/jdk1.8.0-111目录下执行步骤1、检查和删除系统预装jdk//如果操作系统不是最小安装,会默认安装openjdk#rpm -qa |..._export java_home=/home/你的 户名/software/jdk1.8.0_77用法
文章浏览阅读913次,点赞8次,收藏25次。你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!更多资料点击此处获qu!!
文章浏览阅读1.2k次,点赞72次,收藏62次。使用这个主题注释的颜色会有点浅不好看清,可以再字体和颜色里修改一下注释的颜色,改成绿色挺好看清。更换完主题后就可以享受自己的全新vs了(外貌全新)。主题的名字叫NightOwl,和vscode的主题颜色挺像的。操作方法也十分简单,首先我们先在最上面哪一行找到扩展。安装完毕后在最上方那一栏找到工具选项(就在扩展左边),点击最下面的选项。最近发现了一个很好看的vs主题(个人认为挺好看的),想要分享给大家。然后点击管理扩展,再搜索栏上搜索NightOwl,下载这个插件。然后就可以更换主题了。_vscode插件nightowl