随笔 - 221
文章 - 0
评论 - 57
阅读 -
162万
随笔分类 - Mysql
on duplicate key update
摘要:on duplicate key update是mysql的特殊用法,当insert操作出现主键冲突时执行更新操作,样例如下: insert into zhi_test.bd_user (id, user_code, user_name, create_time, update_time) valu
阅读全文
windows系统安装mysql压缩包版本
摘要:1、官网下载mysql安装包 下载地址:https://dev.mysql.com/downloads/mysql/ 2、将压缩包解压到安装目录 3、以管理员身份打开cmd命令窗口 4、执行初始化命令 进入安装目录下的bin目录,执行安装命令 mysqld --initialize --consol
阅读全文
MySQL性能优化-分页查询越来越慢
摘要:通常我们的分页分页查询时这样的: select * from table_name limit m,n; 当表的数据很大(几百万或更多)时,分页查询会随m的值变大而时间边长: select * from bd_user limit 10000, 20; #耗时0.003秒 select * from
阅读全文
MySQL性能优化-索引
摘要:索引在MySQL中也叫“键(key)”,索引对性能影响非常关键,当数据量越来越大时,恰当的索引能大幅提高性能,反之,不恰当的索引会降低性能。索引是存储引擎层的而不是服务器层的,不同存储引擎下的索引有不同的工作方式。 1、索引的分类(Index Type) 主键索引 NORMAL普通索引 UNIQUE
阅读全文
MySQL性能优化-选择适合的字段类型
摘要:1、字段类型设计原则 更小的就是更好的:更小的字段类型通常更快,以为它们占用更小的磁盘、内存、缓存使用,降低I/O开销,而且需要的CPU处理周期更短。 简单就好:简单的数据类型需要更少的CUP周期 尽量避免NULL:可为NULL的列会使用更多的存储空间,当这个字段作为索引时,每个索引记录需要一个额外
阅读全文
Mybatis批量插入问题&MySQL参数max_allowed_packet
摘要:1、背景: 在做业务系统时,经常会碰到主子表模型,子表的数据量比较大,如果采用for循环进行insert操作,效率会很慢,MyBatis提供一个批量操作功能foreach,批量插入操作效率会大大提高。 <insert id="insertBatch" parameterType="java.util
阅读全文
MySQL事务与Spring隔离级别实现
摘要:1、事务具有ACID特性 原子性(atomicity):一个事务被事务不可分割的最小工作单元,要么全部提交,要么全部失败回滚。 一致性(consistency):数据库总是从一致性状态到另一个一致性状态,它只包含成功事务提交的结果 隔离型(isolation):事务所做的修改在最终提交一起,对其他事
阅读全文
MySQL性能优化-in和exists
摘要:一直听说exists性能比in快,但为啥快,一直不明白,乘着今天重点研究mysql,看到底是不是这么回事,原因又是在哪里。 1、我们先准备2张表和数据,人员表插入100W条数据,部门表插入5条数据。 DROP TABLE IF EXISTS `bd_dept`; CREATE TABLE `bd_d
阅读全文
MySQL性能优化-explain执行计划
摘要:explain用于获取查询执行计划信息, 一、语法 只需要在select前加上explain即可,如: mysql> explain select 1; + + + + + + + + + + + + + | id | select_type | table | partitions | type
阅读全文
MySQL性能优化-开启慢日志
摘要:MySQL慢查询日志是MySQL提供的日志工具,用于记录响应时间超过一定阈值的SQL语句,开启慢日志不是目的,而是调优的过程,如果不需要调优的话,一般不建议开启该参数,他会带来性能上的影响。 1、参数查看: show variables like '%slow_query_log%'; show v
阅读全文
CentOS安装MySQL-InnoDB-Cluster集群(适用MySQL5.7和MySQL8.0)
摘要:1、准备好3台CentOS系统机器 1)修改hostname为mysql1、mysql2、mysql3,修改/etc/hostname文件,将里面内容改掉即可 vi /etc/hostname 2)修改/etc/hosts文件,配置映射 vi /etc/hosts 配置如下: 172.16.43.1
阅读全文
MySQL数据库不能存汉字
摘要:这几天在装MySQL-Cluster集群服务,发现装完后操作数据库时保存汉字出错,Navicat报错如图: 检测发现,MySQL未设置默认字符集的情况下,默认字符集为latin1,它不支持汉字,那我们的解决方案就很清楚了,就是改变字符集。 我们先改变数据库的字符集 我们再改变表的字符集: 到这,我保
阅读全文
MySQL-Cluster增加管理节点和数据节点
摘要:MySQL-Cluster集群搭建参考:https:////www.cnblogs.com/zhi-leaf/p/12543503.html 一、增加管理节点 1、编辑管理节点配置文件config.ini vi /var/lib/mysql-cluster/config.ini 添加第二个管理节点信
阅读全文
CentOS搭建MySQL-Cluster集群
摘要:1、准备 1)操作系统为CentOS,使用root用户安装 2)下载mysql-cluster-gpl-7.6.13-el7-x86_64.tar.gz,下载地址https://dev.mysql.com/downloads/cluster/7.6.html。 3)准备3台Linux主机 IP地址
阅读全文
mysql数据库连接与锁查询
摘要:1、查询当前数据库连接信息 show processlist; 2、查询数据库连接配置 show variables like '%connections%'; 3、修改数据库连接配置,修改/etc/my.conf文件,增加如下配置 max_connections=1000 max_user_con
阅读全文
mysql用户与权限操作
摘要:本文所有操作均在mysql8.1下验证,mysql5.x部分语句不适用。 1、创建用户 用户表为mysql库小的user表,Host+User为联合主键。User+Host唯一确认一个用户,本文中的用户均已 'User'@'Host' 格式表示。 2、修改密码 3、删除用户 4、分配权限 grant
阅读全文
mysql的varchar和oracle的varchar2、nvarchar2
摘要:mysql的varchar长度表示字符长度,一个汉字和一个英文字母的长度都是1 实例:下面name字段定义为varchar(10),可存10个汉字和10个字母 oracle的varchar2长度表示的是字节长度,在utf-8的编码模式下,一个汉字为3个字节,1个字母或数字为1个字节,nvarchar
阅读全文
使用mysqldump命令进行mysql数据库备份
摘要:1、用法 2、参数说明 -uroot:数据库用户名为root -h172.16.43.131:指定mysql数据库IP地址 -p:密码 --databases test:设置导出的数据库为test,可以同时导出多个库,库名用空格隔开,如--databases test1 test2,也可以导出所有库
阅读全文
CST时区,MYSQL与JAVA-WEB服务器时间相差13个小时的问题
摘要:最近倒腾了一台阿里云主机,打算在上面装点自己的应用。使用docker安装了安装mysql后,发现数据库的存储的时间与java-web应用的时间差8个小时,初步怀疑是docker容器时区的问题。经过一系列研究,总算把docker容器的时区给调整过来。满怀欣喜的以为问题得到了解决,再次运行应用,我发现时
阅读全文
Docker安装mysql
摘要:第一种方式:从镜像市场安装。 1、查询镜像 2、下载镜像(实测过程中,下载镜像时经常卡住,多试几次就好了) 通过docker images命令查看本地镜像 3、创建并运行容器 参数说明: -p 3306:3306 将主机3306端口映射到容器3306端口 -e MYSQL_ROOT_PASSWORD
阅读全文