书籍学习:深入浅出MySQL 数据库开发优化与管理维护
文章平均质量分 64
学习 深入浅出MySQL 数据库开发优化与管理维护
西方契约
科技改变生活,学无止境,加油(博客只是为了记录学习笔记,方便复习,不一定完全正确,仅供参考,一起学习,加油)
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
mysql 按照汉字字母排序,查询列为纯数字,查询列为纯英文,查询列包含汉字,查询列为纯汉字 sql记录
-- 按照汉字的字母排序SELECT * from key_word s ORDER BY CONVERT(s.kywds_nm using gbk) asc;-- 判断为纯数字SELECT * from key_word s where LENGTH(s.KYWDS_NM +0) = LENGTH(s.KYWDS_NM) and s.KYWDS_NM regexp '^[0-9]';-- 判断为全英文SELECT * from key_words where LENGTH(s.KYW...原创 2020-06-01 17:20:54 · 768 阅读 · 0 评论 -
第二十三章 应用优化
原创 2020-03-30 20:55:45 · 202 阅读 · 0 评论 -
第二十二章 磁盘I.O 问题
原创 2020-03-30 20:44:05 · 237 阅读 · 0 评论 -
第二十一章 优化mysql server
原创 2020-03-29 12:54:59 · 178 阅读 · 0 评论 -
第二十章 锁问题
table_lock_wait 表示不能马上获得锁的数据,table_lock_immediate表示马上获的锁的查询数目。如果是myisam引擎表 table_lock_wait 值比较大,那说明性能有问题,并发高,存储引擎最好改为innodb引擎,在innodb引擎下,table_lock_wait值几乎没用。table_lock_wait 不同于innodb_lock_wait...原创 2020-03-28 21:21:11 · 197 阅读 · 0 评论 -
第十九章 优化数据库对象
原创 2020-03-25 10:16:16 · 152 阅读 · 0 评论 -
第十八章 sql优化
SHOW STATUS LIKE 'COM_%'原创 2020-03-24 21:45:18 · 199 阅读 · 0 评论 -
第17章 分区
原创 2020-03-06 16:30:29 · 226 阅读 · 0 评论 -
第十六章 sql Mode 及相关问题
mode示例:mode可以校验 日期的合法性mode 严格模式可以避免一下结果为null的情况mode NO_BACKSLASH_ESCAPES 可以将“\” 当做普通字符,而不是转译字符mode PIPES_AS_CONCAT 将‘||’视为字符串的连接符。类似java字符串拼接的 “+”mysql 默认的mode 包含PIPES_AS...原创 2020-03-04 16:25:11 · 251 阅读 · 1 评论 -
第十五章 sql中的安全问题
sql注入 :逻辑注入 及 注释符 注入 示例预防注入原创 2020-03-04 14:48:56 · 370 阅读 · 0 评论 -
第十四章 事务控制和锁定语句
简介:mysql 对不同的存储引擎 支持的锁定级别不一样,最常用的innodb 存储引擎 支持行级别锁定:具体每种存储引擎 事务安全,支持的索引类型,以及空间使用,速度等 区别 参考下图:一般情况下 主动干预事务的情况比较少。自动锁 通过设置合理的 锁 和设置合理的 等待时间可以满足大部分业务需要简单的 事务开启和提交:\注意的是 使用star...原创 2020-03-01 17:25:07 · 188 阅读 · 0 评论 -
第十三章 触发器
原创 2020-02-19 15:26:08 · 233 阅读 · 0 评论 -
第十二章 存储过程和函数
简介:重点:区别 存储过程的参数类型可以用 in out inout , 函数的参数类型只能使用in 类型。存储过程和函数的权限创建 修改 和调用:创建新的 存储过程,可以看到 参数类型使用了in 和 out;并且创建存储过程和函数之前 都需要使用delimiter 修改语句结束符 ;截图是把 ‘;’ 结束符 修改为了 $$存储过程其中的一个优点...原创 2020-02-18 10:27:41 · 291 阅读 · 0 评论 -
数据库配置字符集为utf8mb4 ,且配置文件增加 initconnect='set names utf8mb4' 后仍然报错。解决方案 注意事项
增加数据库配置后initconnect='set names utf8mb4' 仍报错,是因为源码里 每次会根据 获取的数据库信息判断后,执行 set names utf8;参考mysql 官方文档,解决方案 升级版本:升级后,测试 生僻字多表关联查询,不再报错;解决后,修改字符集, 部分表 所有列 长度加起来 超过了 65535 字节,也会报错:...原创 2020-01-09 17:14:42 · 7211 阅读 · 1 评论 -
数据库配置字符集为utf8mb4 ,且配置文件增加 initconnect='set names utf8mb4' 后仍然报错
增加数据库配置:效果是在没次sql执行前 执行set names utf8mb4 ;执行set names utf8mb4 效果 是: 三个环境变量 的值 配置为 utf8mb4;如下图initconnect='set names utf8mb4'配置后,其实 数据库配置 是生效的,只不过是被 jdbc 的初始化sql 覆盖掉了:如数据库 日志: 同一个链接 如 1...原创 2020-01-07 09:36:55 · 2513 阅读 · 3 评论 -
mysql 数据库字符集,表字符集 ,列字符集优先级,以及修改表字符集utf8为utf8mb4对之前的数据是否有影响 简记
myslq 可以设置数据库级别,表级别,列级别 字符集编码;优先级顺序为:数据库字符集 < 表字符集 < 列字符集;也就是 上面三个级别 字符集不一致时,以 更小范围的配置为准;例如:数据库字符集为utf8 表字符集不设置的情况下 会默认 utf8 ,如果表主动设置了编码 utf8mb4;那么表的字符集编码就为utf8MB4;由于会有生僻字导致 入库报错后...原创 2019-11-12 17:04:01 · 5014 阅读 · 2 评论 -
mysql数据库 单表数量过亿,表存储占用66GB 情况的数据备份 ,删除,回滚操作记录
菜鸟一只,只是记录 自己的想法和做法,如果有更好的方案可以评论 互相学习;因为项目刚开始设计的时候,设计了 缓存同步的历史记录表;后来经过一段时间后,数据量达到了2亿1千多万;大小为66GB左右; 现在需要对数据进行删除,而删除即使完全没有问题,也要以防万一进行备份和回滚脚本的 书写;单表数据量 及大小如下:(查询的information 库的 tables 表的rows字段 和 d...原创 2019-10-28 16:10:44 · 1607 阅读 · 0 评论 -
第十一章 1 视图
视图的优点:可以直接存放 各种条件过滤之后的结果集; 可以控制到某行或某列的权限;可以避免表结构变化对视图不影响;1 创建视图:create or replace view 视图名称 as 视图存储结果集;例如:create or replace view catalog_view asSELECT c.catl_id,c.catl_nm from t_km_do...原创 2019-08-27 11:39:31 · 184 阅读 · 0 评论 -
第十章 1 索引的设计和使用,创建和删除索引列;索引创建的原则:
索引的设计和使用:所有的mysql类型都可以被索引;Myisam 和 innodb 默认的都是btree索引;Mysql支持前缀索引,即对索引的前N个字符创建索引;Myisam支持的前缀索引长度为1000字节;innodb支持的前缀索引长度为767字节;注意:在create table 创建索引时,长度对应的是字符数; 限制的长度为字节数,所以要不同字符集对应的字...原创 2019-08-07 17:14:45 · 299 阅读 · 0 评论 -
第九章 1mysql字符集和校对规则,选择合适的字符集,查询服务级,数据库级,表级别的字符集设置和校对规则
国际标准化组织 isoGBK 全称<汉字内码扩展规范> 发布于 1995 年;GBK 不是一个强制性的国家标准,只是一个行业指导规范,并没有强制力,但由于得到了 Microsoft windows 95的支持而大为流行;Mysql支持 几十种字符集;应该如何选择呐,有以下可以参考:如果需要支持各种语言,文字,或作发布使用不同语言或国家,mysql目前...原创 2019-08-06 17:37:56 · 566 阅读 · 0 评论 -
mysql多个字段聚合,再以聚合后的结果多列为条件进行查询的方法;
前景:因为sql查询版本表的时候,出现重复数据导致sql'报错,导致后续的逻辑都会失败;正常情况下版本表的数据只会有一条数据;所以需要统计一下 都是有哪些是重复的,都是什么时候产生的数据:1;首先进行了 两列的 聚合查询,查询出 聚合结果大于1 的结果:select count(1) c,v.knwlg_id,v.VERNO from t_km_doc_version v group ...原创 2019-08-06 15:21:04 · 5459 阅读 · 0 评论 -
第八章 1选择合适的数据类型,Char和varchar;Text和blob;浮点数与定点数:;日期类型的选择:mysql总共有5种日期时间类型:
Char和varcharChar是固定长度字符类型Varchar是可变长度的字符类型Char类型在存储数据时,会自动去除尾部空格;前面空格会保留;Varchar 类型会保留前后空格;例如:INSERT into dev_learn_type VALUES(222,22,' abdc ',' abdc ','');Char的长度是固定的,所以处理速度比v...原创 2019-08-01 14:31:14 · 390 阅读 · 0 评论 -
第七章 2 各种存储引擎特性,innodb优点缺点;myisam 静态表会自动去除后面的空格;存储引擎 memory,存储引擎 merge 的创建和查询,
各种搜索引擎 特性图:简单总结就是innodb 优点:支持事务,支持行级锁,支持集群索引,支持数据缓存;支持外键innodb缺点:空间使用高,内存使用高,批量插入速度慢;myisam 优点:访问速度快,支持全文索引,空间使用低,内存使用低;批量插入快缺点:不支持外键,不支持事务;想自己测试的话可以 通过命令修改 存储引擎后 看内存使用或者 数据文件的大小即可:比...原创 2019-07-26 21:39:40 · 470 阅读 · 0 评论 -
第七章 1 表类型,存储引擎的选择--修改表的存储引擎 使用 engine关键字;查看当前数据库支持的 引擎类型:show ENGINES
查看当前数据库支持的 引擎类型:show ENGINESshow VARIABLES like 'have%';修改表的存储引擎 使用 engine关键字;例如: 本来为 innodb 修改为 MyisamALTER TABLE dev_learn_table ENGINE = Myisam;执行后:再次show create table dev_learn...原创 2019-07-25 20:14:26 · 338 阅读 · 0 评论 -
第六章 3 服务器管理,服务器基本状态信息,数据库备份导入导出,服务器权限/用户数据库权限管理
1 服务器链接和创建 不再描述;步骤 可以百度2 查看服务基本状态信息:无 语句执行 情况下 状态截图:多次执行语句后,再看 服务状态截图; cpu 流量 查询链接数 都有了提升3 服务的 启动和 停止:4 数据库备份 /导出 ; 导出是 选择 expoort to dump project folder 是每个表 到成一个文件,选择export tose...原创 2019-07-24 11:43:33 · 262 阅读 · 0 评论 -
第六章 2 图形化工具使用mysql workbench ;数据建模
1. EER 模型,主界面点击 create new eer model ,弹出的面板 双击 add diagram;双击4 add diagram;2 创建多对多的表结构;3 修改table1 为student1 学生表 并增加 id列 和 name名称列;4 重复 2 . 3步骤 创建 课程表;subject1 和列信息id subnam...原创 2019-07-23 18:33:00 · 513 阅读 · 0 评论 -
第六章 1 图形化工具使用mysql workbench ;链接和 页面简介
1 建立链接:点击加号创建链接:双击链接,输入密码链接;2 编辑表数据页面:原创 2019-07-23 17:23:29 · 326 阅读 · 0 评论 -
第五章 9 mysql常用函数,其他函数(部分)
database()返回当前数据库名称version() 返回当前数据库脚本uesr()inet_aton(ip) 返回ip 地址的数字表示;如果加上端口的话 会返回null、inet_ntoa(num) 返回数字代表的ip地址;参数是字符串 或 数字类型 都可以password(str) 对字符串 进行加密;MD5(str) 对字符串...原创 2019-07-22 11:00:23 · 146 阅读 · 0 评论 -
第五章 8 mysql常用函数,流程函数if(value,t,f);ifnull(value1,value2),case when
if(value,t,f) 如果value为true 则返回t;如果value为 false 则返回 f;例如:SELECT if( 1= 1,'对','错')结果:例如:SELECT COUNT(1),t1.flag, IF(t1.flag = 'GX','广西省','其他') 省份 from (SELECT LEFT(p.op_prsn_id,2) flag from t_...原创 2019-07-20 18:01:08 · 567 阅读 · 0 评论 -
第五章 7 mysql常用函数,日期和时间函数
curdate() 返回 当前日期;curtime() 返回当前时间 ;now() 返回当前日期 时间;unix_timestame(date) 返回日期date的unix时间戳;from_unixtime(unixtime) 返回 unixtime的 日期时间格式 和unix_timestame 相反;语句:SELECT CURDATE(),CURTIME(),NOW(...原创 2019-07-20 16:52:20 · 164 阅读 · 0 评论 -
第五章 6 mysql常用函数,数值函数-处理简化数值方面的运算
ABS(X) ,是 取绝对值的函数,返回X的绝对值;例如语句:SELECT ABS(-123),ABS(123),ABS(-0.9),ABS(0.9);结果:ceil(x) floor (x) 函数: 向上 和 向下 取整; ceil 天花板;floor 地板例如:SELECT CEIL(0.99),CEIL(-0.99),CEIL(12.2),CEIL(-12.2);...原创 2019-07-20 11:04:39 · 195 阅读 · 0 评论 -
第五章 5 mysql常用函数,字符串函数-最常用的mysql函数
concat(s1,s2,s3)将字符串s1s2s3 连接到一块;注意:concat其中一个为null,连接的结果就是为null;例如:SELECT * from t_km_doc_edit_pus p where p.KNWLG_NM = CONCAT('知','识','ceshi') ;等于SELECT * from t_km_doc_edit_pus p where p...原创 2019-07-20 10:25:43 · 408 阅读 · 0 评论 -
第五章 4 mysql正则查询及注意事项 ^ $ . [] | * + {n} {m,n} 解析及查询示例
基本符号 ^ $ . [] | * + {n} {m,n}属性名 regexp ‘匹配方式'正则表达式的模式字符^ 匹配字符开始的部分1. 查询 t_km 表 knwlg_nm 字段中查询以'ceshi'开头的记录SELECT * from t_km_doc_edit_pus where KNWLG_NM REGEXP '^ceshi';结...原创 2019-07-17 16:42:23 · 379 阅读 · 0 评论 -
第五章 3 mysql的between和 = 和<=> 和 union all 和union
<=> 可以判断null = 不能判断null; null = null 结果为null ;null <=> null 结果为1(true)between 和 (<= and >= )效果一样; union all 是链接两个sql的查询结果,不去重;union 是链接 并且去除重复...原创 2019-07-17 15:44:31 · 420 阅读 · 0 评论 -
第五章 2 mysql将查询出的id以逗号拼接
select group_concat(需要拼接的字段) from 表名 where 条件 group by 需要以哪个维度聚合拼接 order by 排序字段;示例:查询结果如下:原创 2019-06-28 16:16:22 · 5400 阅读 · 0 评论 -
第五章 1 mysql常用函数,字符串函数
我也是菜鸟,也是新手,一起学习,一起进步,加油;concat(s1,s2,s3)将字符串s1s2s3 连接到一块;注意:concat其中一个为null,连接的结果就是为null;insert(str,x,y,str2) 将字符串str从x开始的 y个字符 替换为 str2; 【起始值是用1开始的】lower(str)upper(str)把字符串全部转为...原创 2019-04-30 09:51:32 · 208 阅读 · 0 评论 -
第四章 1 mysql中的运算符,算数运算符 mysql运算符,比较运算符 mysql运算符,逻辑运算符,布尔运算符
我也是菜鸟,也是新手,一起学习,一起进步,加油;mysql支持的运算符:算数运算符,比较运算符,逻辑运算符,位运算符;算数运算符 包括 加减乘除 和 模运算【除法有两种 /%】;+-*/,div除法,返回 商%,mod除法,返回 余数;MOD(a,b)和 a%b是一样的意思;注意:在除法运算和模运算中,如果除数为0返回...原创 2019-04-30 09:50:49 · 746 阅读 · 0 评论 -
第三章 4 mysql数据类型 之 字符串类型
mysql包括了 char varcharbinary varbinary blob text enum set 等多种字符串类型;char是0~255字节varchar 是0~65535字节注意::: char 列在存储的时候会自动删除尾部的空格;但是varchar 会保留这些空格;定义 binary(3),在给字段赋值为 A 时,其实存储的 是A\0\0;...原创 2019-04-30 09:47:49 · 207 阅读 · 0 评论 -
第三章 3 mysql数据类型 之 日期时间类型
mysql总共有5种日期时间类型:类型字节最小值最大值DATE41000-01-019999-12-31DATETIME 81000-01-01 00:00:009999-12-31 23:59:59...原创 2019-04-30 09:45:19 · 216 阅读 · 0 评论 -
第三章 2 mysql支持的数据类型之数值型
mysql支持的整数类型字节TINYINT1SMALLINT2MEDIUMINT 3INT/ INTEGER4BIGINT8浮点数类型FLOAT4DOUBLE 8定点数类型DEC(M,D)DECIMAL(M,D)m+2位 类型BIT(m)1~8 字节超过...原创 2019-04-30 09:44:00 · 199 阅读 · 0 评论
分享