20_mysql
自找苦吃,自得其乐
有时候,我们缺乏的不是道理,而是吃苦的勇气
展开
-
mysql 优化-数据类型不匹配导致的全表扫描
一条sql执行时间特别长,很多时候页面都直接504 timeout,sql内容大致如下,其中a表的数据有2000w+数据,b表有600w+数据SELECT a.*FROM aWHERE a.user_id = 123AND a.id NOT IN ( SELECT b.pay_record_id AS pay_record_id FROM b WHERE b.user_id = 456)ORDER BY create_time DESC;本来这2条sql语句里面原创 2021-03-08 16:41:00 · 452 阅读 · 2 评论 -
阿里云服务器装数据库
最近在阿里云服务器上安装数据库,数据库本身是通过docker创建的容器,用户名密码啥的都正常,但是就是登录不了。防火墙也设置好了,但是就是连不上。最开始一直在纠结防火墙的问题,试了各种方式都不行,而且端口telnet根本没反应。后来想是不是阿里云自己对端口有控制,于是从阿里云控制台找到配置规则,添加了数据库的3306端口,再连成功了!这个事情还是挺坑人的,如果想不到阿里云方面的控制,那么这问题就无解了。...原创 2021-01-29 22:46:26 · 316 阅读 · 0 评论 -
mysql join 相关例子
# 表a数据:mysql> select * from a;+----+-----------+------+| id | name | age |+----+-----------+------+| 1 | Pirate | 10 || 2 | Monkey | 20 || 3 | Ninja | 20 || 4 | Spaghetti | 20 |+----+-----------+------+# 表b数据:mysql原创 2021-01-12 14:45:54 · 265 阅读 · 0 评论 -
20.慢查询定位
文章目录1.简介2.参数说明3.设置步骤4.测试1.简介开启慢查询日志,可以让MySQL记录下查询超过指定时间的语句,通过定位分析性能的瓶颈,才能更好的优化数据库系统的性能。2.参数说明1.slow_query_log 慢查询开启状态2.slow_query_log_file 慢查询日志存放的位置(这个目录需要MySQL的运行帐号的可写权限,一般设置为MySQL的数据存放目录)3.l...原创 2019-11-18 19:45:19 · 273 阅读 · 0 评论 -
19.分布式锁
文章目录背景分布式锁应该有的功能分布式锁的实现方式:1.基于数据库的表分布式锁1.1.实现逻辑1.2.创建表1.3.锁住方法1.4.当方法执行完毕之后,想要释放锁的话,需要执行以下Sql:1.5.数据库实现方式存在的问题1.6.面对上面问题的解决办法1.6.使用数据库锁的优缺点2.基于redis缓存实现分布式锁2.1.基于SetNX实现:2.2.实现代码2.3.优缺点3.基于zookeeper的分...原创 2019-11-18 19:43:38 · 206 阅读 · 0 评论 -
16.mysql 存储过程
1.存储过程1.创建存储过程#创建获取每一个元素的函数CREATE FUNCTION `func_get_split_string`(f_string varchar(1000),f_delimiter varchar(5),f_order int) RETURNS varchar(255) CHARSET utf8BEGIN declare result varchar(255) ...原创 2019-11-08 19:25:24 · 181 阅读 · 0 评论 -
17.数据库设计流程
建表的原则:原创 2016-10-27 17:07:28 · 699 阅读 · 0 评论 -
1.mysql 安装
mysql原创 2016-09-06 15:50:42 · 1332 阅读 · 0 评论 -
8.mysql 常用配置
Caused by: com.mysql.jdbc.PacketTooBigException: Packet for query is too large (1314 > 1024). You can change this value on the server by setting the max_allowed_packet' variable.MySQL根据配置文件会限制Ser...原创 2018-04-19 16:47:26 · 497 阅读 · 0 评论 -
18.Navicat 的常用功能
1.快捷键 1.1. F8 快速回到当前对象列表 1.2. Ctrl + q 打开查询界面 1.3. Ctrl + d 快速修改当前的表结构 1.4. Ctrl + r 运行当前查询界面里面的 sql 语句 1.5. Ctrl + shift + r 运行当前选中的 sql 语句2.快速查看表结构 2.1.右键表信息->选择对象信息 3.工具 3.1.数据传输:是把一个数据库的里面的原创 2016-03-28 16:57:58 · 30021 阅读 · 5 评论 -
15.mysql面试题
mysql 三张表查询原创 2016-03-30 17:42:00 · 21467 阅读 · 1 评论 -
14.java 操作存储过程
1.新建表CREATE TABLE test (`id` int(20) NOT NULL AUTO_INCREMENT ,`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,PRIMARY KEY (`id`))ENGINE=InnoDBDEFAULT CHARACTER SET=...原创 2015-05-24 18:11:51 · 979 阅读 · 0 评论 -
4.mysql 锁
文章目录引言:1.MyISAM锁分类锁之间的关系加锁时机2.InnoDB**1.事务及其ACID属性****2.并发事务带来的问题****3.事务隔离级别**4.锁分类:4.1.间隙锁(Next-Key锁):影响并发insert的锁4.1.1.范围查询间隙锁4.1.2.等值记录不存在导致间隙锁5.加锁时机:**6.什么时候使用表锁**注意:3.死锁1.死锁的产生原因2.常见的死锁案例:1.不同表相...原创 2019-08-05 13:16:23 · 669 阅读 · 0 评论 -
9.java 多数据库连接维护示例
jdbc多数据源维护:1.DriverManager维护了一个驱动列表以我们熟悉的MysqlDriver来举例:package com.mysql.jdbc;import java.sql.SQLException;public class Driver extends NonRegisteringDriver implements java.sql.Driver { // ...原创 2019-08-02 18:40:06 · 597 阅读 · 0 评论 -
6.读懂mysql执行计划
文章目录1.执行计划概念和语法1.执行计划的概念2.执行计划的语法1.常规执行计划语法2.扩展执行计划的语法3.分区表的执行计划语法2.执行计划包含的信息1.id:查询的顺序2.select_type:查询类型3.table:查询涉及到的表4.type:访问类型5.possible_keys:可能使用的索引6.key:实际使用的索引7.key_length:索引长度8.ref:连接匹配条件9.r...原创 2019-06-28 23:51:49 · 4993 阅读 · 0 评论 -
5.数据库索引实现原理及查询优化
文章目录1.索引的概念2.索引的实现原理磁盘IO与预读b+树的查找过程b+树性质1.索引字段要尽量的小:2.索引的最左匹配特性(即从左往右匹配):二、MySQL的索引分类三、 索引的两大类型hash与btree3.索引的创建4.索引的使用5.索引失效的情况1.索引的概念一般的应用系统,读写比例在10:1左右,而且一般的插入操作和更新操作很少会出现性能问题,在生产环境中出现问题的最多,也最容易出...原创 2019-06-28 14:56:02 · 794 阅读 · 0 评论 -
11.jdbc 操作数据库例子
jdbc操作数据库包括,获取数据库连接和操作数据库。获取数据库连接有2种方式,一种是通过程序自己设置用户名密码、加载驱动来获取连接,另一种是通过java的JNDI的方式来获取数据库连接。操作数据库的方式包括CRUD,其中大部分都比较简单,唯一需要关注的可能是获取自增id的用法。下面我们将以一一举例来说明这些用法。1.获取连接1.通过程序连接package com.bsx.test....原创 2019-07-08 19:14:48 · 224 阅读 · 0 评论 -
10.java 获取数据库连接
文章目录1.通过程序连接2.通过容器连接1.设置连接信息2.配置 web.xml 文件3.获取连接3.获取连接常见问题:4.url配置在xml中写法:1.xml中写法2.java程序中写法:jdbc获取数据库连接有2种方式,一种是通过程序自己设置用户名密码、加载驱动来获取连接,另一种是通过java的JNDI的方式来获取数据库连接。1.通过程序连接package com.bsx.test....原创 2019-07-08 17:46:11 · 1973 阅读 · 0 评论 -
2.mysql用户添加、授权、改密码
文章目录1.让用户在所有ip都可以登录2.让用户在指定ip可以登录3.如果用户无法从本地登陆,这个时候就执行如下4.如果用户依然无法从本地登陆,这个时候就执行如下5.如果还无法本地登陆,并且报错是无法找到 mysql.sock 文件,需要修改一下 my.cnf 文件完整的 my.cnf 文件配置mysql用户无法登陆是因为用户的权限有问题1.让用户在所有ip都可以登录GRANT ALL ...原创 2019-07-01 23:23:42 · 512 阅读 · 0 评论 -
12.mysql常见问题
无where不更新在我们做更新操作的时候,如果没有where条件是不允许执行update语句的,因为这样很可能导致所有数据被更改。一旦出现这样的情况可能会给公司造成巨大的损失。...原创 2019-06-04 15:37:31 · 286 阅读 · 0 评论 -
3.mysql导入导出
导出所有数据库备份数据库 mysqldump -u用户名 -p密码 –lock-all-tables –all-databases > all.sql 导入数据库 mysql -u用户名 -p密码 < all.sql导出表结构:mysqldump -uminzh2015 -pminzh2015-059084068 -h192.168.1.100 -d testdb...原创 2016-11-09 20:22:38 · 583 阅读 · 0 评论 -
13.linux修改mysql数据文件位置基本流程
1.停止mysql服务mysqladmin -u root -p shutdown2.移动数据文件夹mv /var/lib/mysql /home/data/3.复制创建my.cnf文件cp /usr/share/mysql/my-medium.cnf /etc/my.cnf4.后修改配置文件my.cnfvi my.cnf# The MySQL server...原创 2013-07-12 23:09:52 · 717 阅读 · 0 评论 -
7.mysql 主从复制
怎么安装mysql数据库,这里不说了,只说它的主从复制,步骤如下:1、主从服务器分别作以下操作: 1.1、版本一致 1.2、初始化表,并在后台启动mysql 1.3、修改root的密码2、修改主服务器master: #vi /etc/my.cnf [mysqld] log-bin=mysql-bin //[必须]启用二进制日志 s...原创 2014-06-05 00:15:06 · 607 阅读 · 0 评论