mysql
文章平均质量分 53
shaofei_huai
这个作者很懒,什么都没留下…
展开
-
2013 - Lost connection to MySQL server during query处理思路
今天线上有几条sql执行1800s后失败了,报如下错误。 我碰到这种问题第一反应反手甩锅运维,让运维改参数,比如修改以下参数max_allowed_packet:mysql服务器端和客户端在一次传送数据包的过程当中最大允许的数据包大小,该参数最大1G,可通过set global修改。net_read_timeout:读取超时时间默认30分钟。可通过set global修改。net_write_timeout:...原创 2021-09-09 02:01:22 · 538 阅读 · 0 评论 -
mysql 提取字符串中数字
开发过程中经常会遇到一些提取字符串中数字做递增的需求,例如把杭上0001人调字第X号与杭上清0005人调字第X号取出数字做递增,这种没什么规律,又不好截取,如果能提取出汉字中对应的数字取最大值做递增就很方便了。 提取字符串思路就是遍历字符串中每个字符,判断ascii码是否是数字,在这使用自定义函数实现创建自定义函数CREATE FUNCTION get_number (param varchar(50))RETURNS varchar(30)BEGIND...原创 2021-09-02 21:39:51 · 4130 阅读 · 0 评论 -
mysql5.7 change buffer简介
change buffer(更改缓冲区)是mysql对普通索引写操作做的优化,当要进行写操作的数据不在buffer pool中,则会将写操作记录到change buffer中,达到降低磁盘写入频率的目的。刷盘时机 1.后台线程定期进行merge数据。 2.mysql正常关闭。 3.访问change buffer中数据。相关参数innodb_change_buffering:控制哪些操作可以写入change bu...原创 2021-08-20 21:45:28 · 421 阅读 · 0 评论 -
mysql innodb引擎死锁及解决思路
死锁不属于mysql的锁,死锁指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象。若无外力作用,它们都将无法推进下去。形成原因新建student表CREATE TABLE `student` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(16) DEFAULT NULL, `number` bigint(20) DEFAULT NULL COMMENT '普通索引编号', ...原创 2021-07-30 22:40:40 · 1753 阅读 · 0 评论 -
mysql5.7提示[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonag
mysql提示[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'information_schema.PROFILING.SEQ' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mod...原创 2021-07-24 13:16:00 · 2136 阅读 · 0 评论 -
mysql5.7 锁简介(全局锁,表锁,行锁,间隙锁)
全局锁对整个数据库实例加锁,一般用于全库逻辑备份。myisam不支持事务做备份时会用到,innodb做备份可以用mysqldump --single-transcation进行备份保持数据一致性。 开启全局锁:Flush tables with read/write lock; 解锁:unlock tables;表级锁 表级锁分为表锁和元数据锁(meta data lock)简称MDL。表锁一般是在数据库引擎不支持行锁的时候才会被...原创 2021-07-25 16:56:07 · 1884 阅读 · 0 评论 -
mysql5.7 innodb引擎日志系统相关参数
错误日志errorlog 记录mysql启动、关闭、运行期间发生的错误及警告相关信息,当mysql出现问题时可通过排查错误日志定位具体问题。 查看错误日志位置:show global variables like 'log_error'; 修改错误日志位置:修改my.cnf中log-error路径通用日志general log 记录服务端收到的每个命令,由于会记录所有命令,开启会对性能造成影响,默认关闭。可通过以下方式配置使用...原创 2021-07-19 14:30:53 · 2173 阅读 · 0 评论 -
mysql5.7 事务简介
事务特性原子性(Atomicity):一个事务是不可分割的最小工作单元,事务中的操作只能全部成功或全部失败。 一致性(Consistency):事务开始之前和事务结束以后,不会破坏数据库的完整性。隔离性(Isolation):并发访问时,数据库为每个访问开启一个事物,事务直接互相隔离。持久性(Durability):事务被提交后,在数据库中永久改变,数据库再发生鼓掌也不会对其造成影响。事务并发问题 ...原创 2021-07-17 18:03:25 · 2513 阅读 · 0 评论 -
mysql5.7 join算法及优化
Nested-Loop Join(NLJ)算法 嵌套循环算法,例如现有a,b两张表,a中数据量为N,中数据量为M,以a为驱动表。查询语句为select a.id,b.id from a left join b on a.id =b.aid;b.id没索引时该sql在mysql内部处理为: for (int i = 0; i < a.size; i++) { for (int j = 0; i < b.size; i++) { //遍历b表查找时...原创 2021-07-16 16:30:39 · 561 阅读 · 0 评论 -
mysql 5.7使用load data 批量导入数据
大批量数据导入时使用navicat导入效率不高,不过mysql官方提供LOAD DATA 语句,可以高效导入数据。 其基本语法如下LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] --导入模式[最低优先级,需要别的sql执行完再执行|并行执行|指定local可以从客户端读取,没指定要在mysql服务器上读取] INFILE 'file_name' -- 导入文件位置 [REPLACE | IGN...原创 2021-07-12 23:01:46 · 3568 阅读 · 0 评论 -
linux环境mysql5.7忘记密码
1.vim /etc/my.cnf ,编辑配置文件在[mysqld] 下增加skip-grant-tables,跳过授权验证。2.service mysql restart,重启mysql。3.cd/data/mysql-5.7.33-linux-glibc2.12-i686/bin,进入mysql bin目录后./mysql -u root -p 登录mysql,进入之后按任意键回车。4. use mysql; 使用mysql库update user set authenti...原创 2021-07-12 20:09:55 · 479 阅读 · 0 评论 -
mysql5.7执行计划EXPLAIN
sql语句前假如EXPLAIN可查看mysql执行计划。例如EXPLAIN SELECT * FROM TEST WHERE ID_CARD ='1'id:查询语句执行顺序,当id相同时执行顺序由上至下,id不同时。select_type:原创 2021-07-12 14:30:18 · 706 阅读 · 0 评论 -
mysql 索引简介
一、索引实现1.哈希表:适用于等值查询,类似于java的hashmap,innodb不支持此索引。 2.b+树:每个索引对应一个b+树原创 2021-07-11 17:33:45 · 1267 阅读 · 0 评论