随笔分类 -  mysql

摘要:原以为只要是更新就会触发事件更新。 但还是太天真了。 当update 的set字段中包含了本字段的时候并不会触发,或者应该说会以updae set中的值为准。。。。。 场景大概是SSM项目中,设置了一个mysql字段中的公用字段update_time当更新的时候自动修改为当前时间,结果发现没有变? 阅读全文
posted @ 2022-01-05 10:12 gabin 阅读(1579) 评论(0) 推荐(1)
摘要:最近感冒了,还有点低烧,这个问题一直没记录上来 先说明下情况,现象是线上的某一台服务器突然CPU飙升,一直降不下来 初步分析这台机子除了同步离线数据(人员信息)外,并没有CPU密集型的任务 1、然而看了下日志,人员信息同步,数量仅仅1000条,感觉应该不是这个问题 2、接着到服务器上jps,搞出进程 阅读全文
posted @ 2022-01-02 09:11 gabin 阅读(84) 评论(0) 推荐(0)
摘要:1、居然一直没注意到内容检索的时候不区分大小写,太菜了。。。。比如字段ename='TOM'和ename='tom'是一样的 可以用BINARY来强制区分,但注意这个应该不是一个专门用来做这个事的东西,因为用了查询计划看了,命中不了索引。。。。 select * from emp where BIN 阅读全文
posted @ 2021-09-30 11:32 gabin 阅读(51) 评论(0) 推荐(0)
摘要:一、隔离级别参考:https://www.cnblogs.com/gabin/p/13457612.html 二、锁 类型: 表共享读锁(MyIsAM):只与共享锁共存 表独占写锁(MyIsAM):任何锁都不能共存,只能等 共享锁(S)- InnoDB:只能与共享锁共存 排它锁(X)- InnoDB 阅读全文
posted @ 2020-09-26 22:51 gabin 阅读(198) 评论(0) 推荐(0)
摘要:可以用客户端连接后通过命令来查看: show variables; show variables like '%connection%'; 参考地址:https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html 一、通用(G 阅读全文
posted @ 2020-09-25 14:50 gabin 阅读(156) 评论(0) 推荐(0)
摘要:一、分区概念: mysql目前应该是只支持水平分区,一般的水平分区如果是表,则相当于原来存储在一个文件的表分为多个文件 应用场景: 单个分区维护更容易 文件分布到不同硬件 避免瓶颈,比如数据量过大导致文件存储限制或者访问速度问题 innoDB单独索引的互斥访问(初步理解是分区把索引也分了,所以基于索 阅读全文
posted @ 2020-09-25 11:48 gabin 阅读(244) 评论(0) 推荐(0)
摘要:查询慢的原因 网络&IO(集群) CPU IO - 临时表、文件排序,查询数据量 上下文切换 生成统计信息(Performance_Schema 、Profile等) 锁等待时间 - 并发场景(表锁、行锁 | 读锁、写锁 | 【InnoDB-锁的对象:索引】共享锁、排它锁 | 【MyIsAM】共享锁 阅读全文
posted @ 2020-09-24 11:40 gabin 阅读(175) 评论(0) 推荐(0)
摘要:1、Using join buffer (Block Nested Loop) 例如A表 Join B表,如TYPE类型是ALL或Index时候,则可以使用连接缓存(Join Buffer) 官方示例代码: for each row in t1 matching range { for each r 阅读全文
posted @ 2020-09-23 19:44 gabin 阅读(1300) 评论(0) 推荐(0)
摘要:参考:https://dev.mysql.com/doc/refman/5.7/en/mysql-indexes.html 索引(Indexs) 一、作用(轻定义):索引用于快速查找具有特定列值的行。没有索引,MySQL必须从第一行开始,然后通读整个表以找到相关的行。表越大,花费时间越长。如果表中有 阅读全文
posted @ 2020-09-22 09:37 gabin 阅读(138) 评论(0) 推荐(0)
摘要:一、官方:https://dev.mysql.com/doc/refman/8.0/en/explain-output.html 二、语句: explain select * from tableName; id:执行的顺序,数值大的优先执行 select_type:查询类型,方式 select_t 阅读全文
posted @ 2020-09-21 17:53 gabin 阅读(209) 评论(0) 推荐(0)
摘要:一、无监控不性能 show profile(s) [set profiling=1] performance_schema (show) processlist 二、数据更小的数据 varchar 满足需求的最小数据类型(存储数据大小和占用空间大小是不一样的) 空间占用更小 char 最大长度 25 阅读全文
posted @ 2020-09-21 16:57 gabin 阅读(150) 评论(0) 推荐(0)
摘要:1、show profile(s) 查看语句的整个执行时间片 https://dev.mysql.com/doc/refman/8.0/en/show-profile.html set profiling=1 show profile for query id show profile cpu fo 阅读全文
posted @ 2020-09-20 18:19 gabin 阅读(152) 评论(0) 推荐(0)
摘要:组合索引 旧的mysql版本可能因为索引的顺序问题不生效 单列索引 思路:一般索引不生效通常意味着数据库的引擎解析优化的查询需要全表检索 所以(这边校验的是mysql 5.7): 1、对where做了函数判断(order by 也一样) substr(USERNAME, 2)='admin' 2、本 阅读全文
posted @ 2020-08-19 11:06 gabin 阅读(200) 评论(0) 推荐(0)
摘要:一、未提交读(READ UNCOMMITED) 此事务中,A事务还未提交的修改可被B事务读取到,称为脏读(Dirty Read),与脏数据不同;一般很少使用此隔离级别(性能并未有显著优势,且问题较多) 二、提交读(不可重复读)(READ COMMITED) 大部分数据库的默认隔离级别,B事务只能读取 阅读全文
posted @ 2020-08-08 14:11 gabin 阅读(309) 评论(0) 推荐(0)
摘要:备忘记录:修改权限 阅读全文
posted @ 2019-10-25 11:57 gabin 阅读(1434) 评论(0) 推荐(0)
摘要:最近mbp电脑又坏了,重新装了系统,安装mysql的时候可能是因为先安装了mysql5.6没成功,替换安装了percona-server,是5.7的版本。 运行项目的时候报了1577的错误: 类似这样的错误 参考了网上的解决方案,备忘记录在此,在mysql的安装bin目录下执行下列语句 阅读全文
posted @ 2018-08-28 14:47 gabin 阅读(1211) 评论(1) 推荐(2)
摘要:由于项目有需要支持表情包输入数据库,自己做了一下技术测试,修改了my.cnf的权限为777.结果就操蛋了。编码错误。。。。直到我无意地输入mysql -h,提示我/etc/my.cnf被忽略的一段话好吧,这才发现是我自己坑了自己,然后重新 chmod 644 /etc/my.cnf重启mysql,编... 阅读全文
posted @ 2015-06-03 12:08 gabin 阅读(136) 评论(0) 推荐(0)
摘要:-- 导出数据库:mysqldump -u user_name -p database_name > import_file.sql -- 执行脚本source database.sql 阅读全文
posted @ 2015-03-03 10:38 gabin 阅读(129) 评论(0) 推荐(0)
摘要:--创建数据库 CREATE DATABASE DB_NAME; --选中数据库 USE DB_NAME; --列出数据库列表 SHOW DATABASES; --删除数据库 DROP DATABASE DB_NAME; --建表语句 CREATE TABLE TABLE_NAME( ID INT( 阅读全文
posted @ 2014-08-22 17:17 gabin 阅读(177) 评论(0) 推荐(0)