
MySQL
Bruin_W
只想把自己遇到的问题发出来记录,并希望能帮到大家-.-
展开
-
不要再用dataformat统计每天的日期的count了,可以使用substring和cast函数速度更快更方便
不要再用dataformat统计每天的日期的count了最近在优化报表统计图的查询速度要查询每天某一项的count数量,由于需要group by 走索引但是dataformat属于mysql函数不能走索引所有我看了MySQL的其他速度比dataformat快的函数第一个是1.字符串截取:substring,从第一个字段截取到第十个字符串,然后group bySELECT substring(time, 1, 10),count(distinct customers_ip) as days_c原创 2022-04-15 17:36:53 · 843 阅读 · 0 评论 -
数据库名称带减号- 修改删除时
数据库名称要加上 ``````````````````````这个符号xxxx-yyy 要加上`号!原创 2022-02-08 10:37:32 · 959 阅读 · 0 评论 -
更新数据库字段,不能为NULL,加注释,更改字段类型大小
alter table 表名 modify column 表名.字段名 varchar(6) NOT NULL COMMENT ‘这是注释内容’;原创 2021-09-29 10:33:21 · 617 阅读 · 0 评论 -
ERROR 1044 (42000): Access denied for user ‘‘@‘localhost‘ to database ‘mysql‘
ERROR 1044 (42000): Access denied for user ‘’@‘localhost’ to database ‘mysql’没有切换root权限用的是其他用户的权限所以不能创建数据库需要mysql -u root -p然后输入root的密码就切换root身份可以创建数据库了...原创 2021-08-20 10:06:48 · 200 阅读 · 0 评论 -
使用SQL语句添加MySQL表的列,非空,无符号,备注和默认值
alter table XXX add XXX tinyint(3) unsigned DEFAULT 0 COMMENT ‘XXX’ not null原创 2020-09-23 09:23:36 · 2864 阅读 · 0 评论 -
数据库隔离级别图解,不可重复读和可重复读的含义,通俗易懂
今天看了书,又翻出了这个问题,之前理解没这么透彻,现在是彻底搞懂了。不可重复读取是针对的开始时刻,不可重复读就是,我开始时刻是a=1,但是我有其他事务提交了,变成a=10,我再读就变成10了,重复再读,但值已经不同了,所有就是不可重复读取,不能再读到我提交前的值了可重复读取意思就是 我是1 你任何时候重复再读我还是1,所有就是可重复读取,能再读到我提交前的值了...原创 2020-08-17 17:30:23 · 1947 阅读 · 0 评论 -
MySQL模糊查询通配符,一个两个的含义
通配符%(百分号),_(下划线)就是通配符,%表示任何字符出现任意次数(可以是0次),_表示单个字符,用户如下:1 SELECT id,title FROM table WHERE title like ‘张三%’;2 SELECT id,title FROM table WHERE title like ‘%张三’;3 SELECT id,title FROM table WHERE title like ‘%张三%’;1.表示匹配以张三开始的记录2.表示匹配以张三结束的记录3.表示匹配含有原创 2020-08-12 09:26:25 · 1984 阅读 · 0 评论 -
MyBatis中的updateByPrimaryKey与updateByPrimaryKeySelective区别
MyBatis中自动生成的两个根据主键查询的方法updateByPrimaryKeySelective是更新新的model中不为空的字段。updateByPrimaryKey是会将为空的字段在数据库中置为NULL。updateByPrimaryKeySelective会做if判断<update id="updateByPrimaryKeySelective" parameterType="xxx" > update group <set>原创 2020-08-07 14:49:20 · 789 阅读 · 0 评论 -
MySQL的锁机制
innodb的锁机制1.共享锁/排他锁2.意向共享锁/意向排他锁3.记录锁4.间隙锁5.原创 2020-06-01 00:55:49 · 210 阅读 · 0 评论 -
导入不同版本数据库时日期字段报错 errorcode1064
DROP TABLE IF EXISTS `sys_role`;CREATE TABLE `sys_role` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `name` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `remark` VARCH...原创 2020-03-22 17:17:27 · 505 阅读 · 0 评论 -
Redis缓存雪崩
数据库内大量热点key失效(指定时间同时失效)访问量增大导致mysql负载过大,宕机了发生缓存雪崩场景:京东官网内容,整体图片更换时,需要将Redis内缓存的旧内容清理掉,设置相同时间清理,而就在清理的时候,京东官网有秒杀活动,大量请求,由于Redis内没有缓存需要到MySQL中查找,大量请求MySQL,导致MySQL宕机,称之为缓存雪崩解决方案:不同时设计Redis缓存内容过期,伪代码s...原创 2020-03-14 14:19:02 · 225 阅读 · 0 评论 -
关于数据库索引为什么要选B+树一点自己的见解
首先从二叉树说起树型结构的查询时间复杂度O(logN)所以要选择树形结构树形结构方便查找所以选用二叉搜索树但为什么不用二叉搜索树因为它具有不平衡性,如果插入连续递增序列,数据结构就会类似于链表所以选用AVL树但为什么又不用二叉搜索AVL树,因为AVL树是二叉,由于数据库储存数据量过于庞大,如果使用二叉树,会导致树的层数过高,增加IO次数,十分影响查询速度所以选用多路查找树B树但是...原创 2020-03-12 17:08:09 · 268 阅读 · 0 评论 -
如何防止sql注入
select内的or1= 1 --这种情况mybatis可以用#来防止(底层也是菜要预编译,使用的也是jdbc的PrepareStatement)或者使用正则表达式筛选或者jdbc的PrepareStatement先进行预编译那为什么它这样处理就能预防SQL注入提高安全性呢?其实是因为SQL语句在程序运行前已经进行了预编译,在程序运行时第一次操作数据库之前,SQL语句已经被数据库分析,编译...原创 2020-03-12 11:49:59 · 212 阅读 · 0 评论 -
MySQL导入表时出错Query : CREATE TABLE `XXXXXXX` ( `XXX` int(11) NOT NULL DEFAULT '') Error Code : 1067
MySQL导入表时出错Query : CREATE TABLE XXXXXXX ( XXX int(11) NOT NULL DEFAULT ‘’) Error Code : 1067 `rid` int(11) NOT NULL DEFAULT '', `pid` int(11) NOT NULL DEFAULT '',将以上语句改为有默认值即可,不能为NULL,导致此错误原因...原创 2020-03-02 16:17:45 · 1177 阅读 · 0 评论