MySQL
文章平均质量分 70
MySQL学习和实战(The world‘s most popular open source database)
共饮一杯无
CSDN内容合伙人,杭州开发者社区主理人,Java领域优质创作者,2022年度博客之星TOP15,CSDN博客专家,51CTO 专家博主,华为云享专家,阿里云专家博主,InfoQ专家博主,持续输出干货,欢迎关注。
鲜衣怒马意气风发,愿你归来仍是少年。
展开
-
1366 - Incorrect DECIMAL value_ ‘0‘ for column ‘‘ at row -1 修改MySQL字段报错解决
1366 - Incorrect DECIMAL value_ '0' for column '' at row -1 修改MySQL字段报错解决原创 2023-04-21 16:37:27 · 4439 阅读 · 2 评论 -
MySQL中的索引、视图和DBA操作
索引就相当于一本书的目录,通过目录可以快速地找到对应的资源。全表扫描根据索引检索(效率很高)索引为什么可以提高检索效率呢?其实最根本的原理是缩小了扫描的范围。索引虽然可以提高检索效率,但是不能随意的添加索引,因为索引也是数据库当中的对象,也需要数据库不断地维护。是有维护成本的。比如,表中的数据也经常被修改这样就不适合添加索引,因为数据一旦修改,索引需要重新排序,进行维护。添加索引是给某一个字段,或者说某些字段添加索引。原创 2022-09-28 12:48:12 · 1594 阅读 · 0 评论 -
MySQL/Oracle怎么把一个表的数据复制到另一个表
创建新表复制原有表的结构和数据 create table new_table as select * from old_table;复制一张表的数据到另一张表(表结构相同)INSERT into table1 select * from table2;复制一张表的数据到另一张表(表结构相同)INSERT into table1(表中字段1,表中字段2) select 表中字段1,表中字段2 from table2;...原创 2022-03-21 14:00:40 · 9398 阅读 · 0 评论 -
MySQL数据库执行Update卡死问题解决
MySQL数据库执行Update卡死问题解决原创 2022-03-10 13:32:41 · 10408 阅读 · 0 评论 -
MySQL实战 | MySQL逻辑架构—一条查询SQL是如何执行的
执行如下SQL,我们看到的只是输入一条语句,返回一个结果,却不知道这条语句在 MySQL 内部的执行过程。select * from where id ='1';上图给出的是 MySQL 的基本架构示意图,从中你可以清楚地看到 SQL 语句在 MySQL 的各个功能模块中的执行过程。大体来说,MySQL 可以分为 Server 层和存储引擎层两部分。Server 层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函原创 2022-03-24 19:07:18 · 6261 阅读 · 0 评论 -
Linux下安装mysql
Linux安装MySQL原创 2022-01-09 19:24:13 · 5909 阅读 · 0 评论 -
MySQL查询某个表中的所有字段并通过逗号分隔连接
想多造一些测试数据,表中字段又多一个个敲很麻烦,导出表中部分字段数据又不想导出ID字段(因为ID字段是自增的,导出后再插入会报唯一性错误),select * 查出来又是所有的字段。可以通过如下SQL查询表中所有字段通过逗号连接,然后复制出来进行select查询再导出 select group_concat(COLUMN_NAME) '所有字段' from information_schema.COLUMNS where table_name = '表名';执行效果如下:下面的语句可以查询某个库中原创 2021-12-07 14:04:16 · 11085 阅读 · 0 评论 -
MySQL中的DATEDIFF()、PERIOD_DIFF()和TIMESTAMPDIFF()函数使用
DATEDIFF() 函数返回两个日期之间的天数用法:DATEDIFF(date1,date2)date1 和 date2 参数是合法的日期或日期/时间表达式。注意:只有值的日期部分参与计算,具体的时间不参与计算,计算两个日期之间的天数要用DATEDIFF不能用period_diff案例:SELECT DATEDIFF('2021-10-01','2021-09-30') AS DiffDate ----->1SELECT DATEDIFF('2021-10-01 23:59:原创 2021-12-13 15:02:42 · 9835 阅读 · 0 评论 -
MySQL中的约束和存储引擎
存储引擎这名字只有在mysql中存在。(oracle中有相应的机制,但是不叫做存储引擎。Oracle中没有特殊的名字,就是”表的存储方式”)Mysql支持很多存储引擎,每一个存储引擎都对应了一种不同的存储方式。每一个存储引擎都有自己的优缺点,需要在合适的时机选择合适的存储引擎。MyISAM表最适合于大量的数据读而少量数据更新的混合操作。MyISAM表的另一种适合情形是使用压缩的只读表。如果查询中包含较多的数据更新操作,应使用InnoDB。原创 2022-09-28 12:50:26 · 1454 阅读 · 0 评论 -
MySQL使用性能优化—查看数据库的最大连接数、当前连接数等
在使用MySQL数据库的时候,经常会遇到这么一个问题,就是"Can not connect to MySQL server. Too many connections" -mysql 1040错误,这是因为访问MySQL且还未释放的连接数目已经达到MySQL的上限。通常,mysql的最大连接数默认是100, 最大可以达到16384。MySQL的最大连接数,增加该值增加mysqld 要求的文件描述符的数量。如果服务器的并发连接请求量比较大,建议调高此值,以增加并行连接数量,当然这建立在机器能支撑的情况下,因为原创 2022-03-17 11:45:15 · 7158 阅读 · 0 评论 -
MySQL中的事务和事务隔离级别
一个事务是一个完整的业务逻辑单元,不可再分。比如:银行账户转账,从A账户向B账户转账10000.需要执行两条update语句。以上两条DML语句必须同时成功,或者同时失败,不允许出现一条成功,一条失败。要想保证以上的两条DML语句同时成功或者同时失败,那么就需要使用数据库的“事务机制”。事务可以保证多个操作原子性,要么全成功,要么全失败。对于数据库来说事务保证批量的DML要么全成功,要么全失败。原创 2022-09-28 12:55:11 · 1847 阅读 · 7 评论 -
windows 10下载安装mysql5.7
MySQL数据库在日常使用是非常的频繁的,不管是线上还是线下。下面我就分享出我安装MySQL5.7的一步一脚印的教程,本教程只针对windows版本。下载MySQL官网下载地址:https://downloads.mysql.com/archives/community/选择对应的系统和版本点击下载解压下载后解压,我这里解压后的目录如下:配置环境变量打开环境变量,如图中标红设置环境变量:变量名用MYSQL_HOME,变量值就是刚刚的解压后进入的目录,然后点击确认。在Path系统变原创 2022-02-26 06:30:00 · 10985 阅读 · 0 评论 -
长文一次说完MySQL常用语句和命令等汇总
连接数据库mysql -uroot -proot查看所有数据库show databases;创建数据库并设置字符集和排序规则create database zjq CHARACTER SET ‘utf8mb4’ COLLATE utf8_chinese_ci;使用数据库use zjq;查看当前数据库中的表show tables;删除数据库drop database zjq;查看表结构desc dept;查看表中的数据select * from e原创 2022-03-14 05:00:00 · 11747 阅读 · 0 评论 -
Mysql为何建议使用自增id作主键,有什么优点
B+ 树为了维护索引有序性,在插入新值的时候需要做必要的维护。如果插入的值比最大值id大,则只需要最后记录后面插入一个新记录。如果新插入的ID值在原先的有序中间,就相对麻烦了,需要逻辑上挪动后面的数据,空出位置。如果所在的数据页已经满了,根据 B+ 树的算法,这时候需要申请一个新的数据页,然后挪动部分数据过去。这个过程称为页分裂。在这种情况下,性能自然会受影响。除了性能外,页分裂操作还影响数据页的利用率。原本放在一个页的数据,现在分到两个页中,整体空间利用率降低大约 50%。当然有分裂就有合并。当相邻两原创 2022-04-08 21:41:37 · 11463 阅读 · 2 评论 -
MySQL执行SQL语句报错Row xxx was cut by GROUP_CONCAT()
通过报错日志可以看到是使用GROUP_CONCAT函数报错,查找原因发现是拼接的字符串过长导致无法返回结果。根据结果显示,默认的可拼接串最大长度不超过1024个字节,期望能够扩大允许的拼接字符串最大长度。与Windows环境类似,一般配置文件所在位置为:/etc/my.cnf。配置完成后,进入服务,选择MySQL服务,重新启动。扩大允许拼接字符串的最大长度。重启后,执行查看最大允许长度已调整成102400。命令行修改方式与Windows一致,不再赘述。原创 2022-09-20 17:22:38 · 3524 阅读 · 3 评论 -
MySQL实战 | MySQL日志模块—redo log和 binlog
一个更新语句执行的时候整个过程跟查询的步骤是类似的,具体可以看之前的文章:MySQL实战 | MySQL逻辑架构—一条查询SQL是如何执行的,在一个表上有更新的时候,跟这个表有关的查询缓存会失效,所以这条语句就会把表上所有缓存结果都清空。这也就是我们一般不建议使用查询缓存的原因。根据id更新某条数据,分析器会通过词法和语法解析知道这是一条更新语句。优化器决定要使用 ID 这个索引。然后,执行器负责具体执行,找到这一行,然后更新。与查询流程不一样的是,更新流程还涉及两个重要的日志模块:redo log(重原创 2022-04-07 18:23:32 · 5967 阅读 · 0 评论 -
MySQL查看数据库表中的重复记录并删除
表数据如下查看用户名相同的记录select * from user where username in (select username from user group by username HAVING count(*) >1);查看用户名和手机号都相同的重复记录select * from user where (username,phone)in (select username,phone from user group by username,phone HAVING coun原创 2022-03-17 16:23:45 · 6943 阅读 · 0 评论