- MySQL 正则表达式 11-25
- 简单MySQL教程六 11-25
- 纯干货:Java程序员提高篇!小白变大佬都经历了什么 11-25
- Javaweb之mysql加强 11-25
- Mysql索引优化 11-25
- MySQL断电恢复的一点简单分析 11-25
- MySQL 11-25
- javaWeb之mysql基础 11-25
- MySQL助理配置 11-25
- Mysql的时间类型 11-25
MySQL 正则表达式
发布者: superzhang | 发布时间:2017-11-25在前面的章节我们已经了解到MySQL可以通过 LIKE ...% 来进行模糊匹配。
MySQL 同样也支持其他正则表达式的匹配, MySQL中使用 REGEXP 操作符来进行正则表达式匹配。
如果您了解PHP或Perl,那么操作起来就非常简单,因为MySQL的正则表达式匹配与这些脚本的类似。
下表中的正则模式可应用于 REGEXP 操作符中。
模式描述^匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 '\n' 或 '\r' 之后的位置。$匹配输入字符串的结束位置。如果设置了RegExp 对象的 Multiline 属性,$ 也匹配 '\n' 或 '\r' 之前的位置。.匹配除 "\n" 之外的任何单个字符。要匹配包括 '\n' 在内的任何字符,请使用象 '[.\n]' 的模式。[...]字符集合。匹配所包含的任意一个字符。例如, '[abc]' 可以匹配 "plain" 中的 'a'。[^...]负值字符集合。匹配未包含的任意字符简单MySQL教程六
发布者: superzhang | 发布时间:2017-11-25一、数据库锁
1、锁: 在数据库中,除传统的计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。
2、锁的分类:
从对数据操作的类型(读\写)
读锁(共享锁):针对同一份数据,多个度操作可以同时进行而不会互相影响。
写锁(排它锁):当前写操作没有完成前,它会阻断其他写锁和读锁。
从对数据操作的粒度
表锁
行锁
3、表锁(偏读)
①、特点
偏向MyISAM存储引擎,开销小,加锁快,无死锁;锁定粒度大,发生锁冲突的概率最高,冰法度最低。
②、结论
MyISAM在执行查询语句(SELECT)前,会自动给涉及的所有表加读锁,在执行增删改操作前,会自动给涉及的表加写锁。
MySQL的表级锁有两种模式:
表共享读锁(Table Read Lock)
表独占写锁(Table Write Lock)
1、对MyISAM表的读操作(加读锁),不会阻塞其他进程对同一表的读请求,但会阻塞对同一表的
纯干货:Java程序员提高篇!小白变大佬都经历了什么?
发布者: superzhang | 发布时间:2017-11-25此篇幅是个人整理的一点心得,针对的广大的普通大众人员,还有此篇文章的出发点是从先就业后择业的角度去分析java程序员的条提升,进阶之路。
入门篇:从Web开始,以下是所需要掌握的知识点
一:java基础:java工作原理(jvm),
java语法、数据结构和算法,
熟悉java api ,java 常用的核心类库
java语言特性(封装、继承、多态、抽象)
java设计模式(在开发中会经常用到)
java反射机制(常用框架都会用到反射机制)
网络编程
多线程
二:熟悉常用前端知识给大家推荐一个java学习群:290256293,进群找管理免费领取学习资料和视频。没有错就是免费领取!大佬小白都欢迎,大家一起学习共同进步!
html
css
javascript
jquery
ajax
常用页面以及后台插件(tree、时间、poi等等)
三:熟悉常用服务器以及servlet规范web应用服务器(tomcat、weblogic)
熟悉servlet规范
四:熟悉常用数据库以及JDBCjdbc是比较底层的数据操作
oracle、mysql等等
Javaweb之mysql加强
发布者: superzhang | 发布时间:2017-11-25mysql加强
1)数据约束(表约束)
默认值: default 默认值
非空: not null
唯一: unique
主键: primary key (非空+唯一)
自增长: auto_increment
外键: foreign key 约束两种表
2)关联查询(多表查询)
2.1 交叉连接(产生笛卡尔积:原因:连接条件不足够) 表数量-1
2.2 内连接查询: inner join
只有满足连接条件的数据才会显示!!!
2.3 左【外】连接查询:left [outer] join
左表的数据必须全部显示,用左表去匹配右表的数据,如果右表有符号条件的数据则显示符合条件的数据;如果不符合条件,则显示null。
2.4 右【外】连接查询: right [outer] join
右表的数据必须全部显示,用右表去匹配左表的数据,如果左表有符号条
Mysql索引优化
发布者: superzhang | 发布时间:2017-11-25一、索引的数据结构 B-Tree(mysql主要使用 B-tree 平衡树)
聚簇索引与非聚簇索引
聚簇索引:索引的叶节点指向数据
非聚簇索引:索引的叶节点指向数据的引用
索引类型优劣聚簇索引查询数据少时,无须回行 不规则插入数据,频繁的页分裂myisam使用非聚簇索引,innodb使用聚簇索引
对于innodb引擎:
主键索引既存储索引值,又在叶中存储行数据
如果没有主键,则会使用 unique key 做主键
如果没有unique,则mysql会生成一个rowid做主键
二、索引类型
1. 主键索引
primary key() 要求关键字不能重复,也不能为null,同时增加主键约束
主键索引定义时,不能命名
2. 唯一索引
unique index() 要求关键字不能重复,同时增加唯一约束
3. 普通索引
index() 对关键字没有要求
4. 全文索引
fulltext key() 关键字的来源不是所有字段的数据,而是字段中提取的特别关键字
关键字:可以是某个字段或多个字段,多个字段称为复合索引
建表:creat table stuMySQL断电恢复的一点简单分析
发布者: superzhang | 发布时间:2017-11-25今天有个网友问我一个MySQL的恢复问题。提供的截图如下。
对于这个问题,在一些断电的场景下还是可能出现的。我首先是要确认是否为线上业务还是测试环境,线上业务来说这个影响还是很大的。如果数据库无法启动,首要任务还是把数据库启动,然后在这个基础上查看丢失的数据程度,安排数据修复的事宜。
当然从我的角度来说,怎么去快速复现这个问题呢。我用自己写的快速搭建测试主从环境的脚本(https://github.com/jeanron100/mysql_slaves,后期有一位大牛建议用Python来做,最近在考虑),分分钟即可搞定。
我们创建一个表test,指定id,name两个字段。然后开启显式事务。
create table test(id int primary key,name varchar(30) not null);
显式开启一个事务:
begin;insert into test values(1,'a');insert into tes
MySQL
发布者: superzhang | 发布时间:2017-11-25Mysql是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。
我在以后会让大家快速掌握Mysql的基本知识,并轻松使用Mysql数据库。
什么是数据库?
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,
每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据。
我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。
所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理的大数据量。所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。
javaWeb之mysql基础
发布者: superzhang | 发布时间:2017-11-25mysql基础
1)mysql存储结构: 数据库 -> 表 -> 数据 sql语句
2)管理数据库:
增加: create database 数据库 default character utf8;
删除: drop database 数据库;
修改: alter database 数据库 default character gbk;
查询: show databases / show create database 数据库;
3) 管理表:
选择数据库:use 数据库;
增加: create table 表(字段名1 字段类型,字段名2 字段类型......);
删除: drop table 表;
修改:
添加字段: alter table 表 add [column] 字段名 字段类型;
删除字段: alter table 表 drop [column] 字段名;
修改字段类型: alter table 表 modify 字段名 新的字段类型;
修改字段名称 : alter table 表 change 旧字段名 新字段名 字段类型;
修改表名称: al
MySQL助理配置
发布者: superzhang | 发布时间:2017-11-25基本配置
你需要经常察看以下3个配置项。不然,可能很快就会出问题。
innodb_buffer_pool_size:这是你安装完InnoDB后第一个应该设置的选项。缓冲池是数据和索引缓存的地方:这个值越大越好,这能保证你在大多数的读取操作时使用的是内存而不是硬盘。典型的值是5-6GB(8GB内存),20-25GB(32GB内存),100-120GB(128GB内存)。
innodb_log_file_size:这是redo日志的大小。redo日志被用于确保写操作快速而可靠并且在崩溃时恢复。一直到MySQL 5.1,它都难于调整,因为一方面你想让它更大来提高性能,另一方面你想让它更小来使得崩溃后更快恢复。幸运的是从MySQL 5.5之后,崩溃恢复的性能的到了很大提升,这样你就可以同时拥有较高的写入性能和崩溃恢复性能了。一直到MySQL 5.5,redo日志的总尺寸被限定在4GB(默认可以有2个log文件)。这在MySQL 5.6里被提高。
一开始就把innodb_log_fil
Mysql的时间类型
发布者: superzhang | 发布时间:2017-11-25mysql中有多种数据类型可以用于时间和日期的表示,不同的版本可能由不同的地方,下面这张图表示mysql5.0中所支持的日期和时间类型。
日期和时间类型
如果要用来表示年月日的话,那么通常用date来表示;
如果要用来表示年月日时分秒,通常用datetime来表示;
如果用来表示时分秒,通常用time来表示;
如果需要插入的时间为系统时间的话,通常使用timestamp来表示(timestamp值返回后显示为"yyyy-mm-dd hh:mm:ss"格式的字符串,显示宽度为19个字符,如果想要获得数字值,需要在timestamp列添加“+0” :select ts+'0' from ts;获得的值为20170625185917);
如果只是表示年份,可以用year来表示,它比date占用更少的空间。year有2位或4位格式的年,默认是4位格式。4位格式的时候允许的值是1901--2155。在2位格式中,允许的
