随笔分类 -  mysql

摘要:前言 MySQL是优化难度最大的一个部分,不但需要理解一些MySQL专业知识,同时还需要长时间的观察统计并且根据经验 进行判断,然后设置合理的参数。下面我们了解一下MySQL优化的一些基础。 目录 1)连接请求的变量 1、max_connections 2、back_log 3、wait_timeo 阅读全文
posted @ 2020-03-27 17:42 王大军 阅读(2333) 评论(0) 推荐(0)
摘要:为什么要分区和分表 我们的数据库数据越来越大,随之而来的是单个表中数据太多,以至于查询速度过慢,而且由于表的锁机制导致应用操作也受到严重影响,出现数据库性能瓶颈。 MySQL中有一种机制是表锁定和行锁定,是为了保证数据的完整性。表锁定表示你们都不能对这张表进行操作,必须等我对表操作完才行。行锁定也一 阅读全文
posted @ 2020-03-23 14:39 王大军 阅读(750) 评论(0) 推荐(0)
摘要:用户模块 用户登录表(customer_login) CREATE TABLE customer_login( customer_id INT UNSIGNED AUTO_INCREMENT NOT NULL COMMENT '用户ID', login_name VARCHAR(20) NOT NU 阅读全文
posted @ 2020-03-23 11:13 王大军 阅读(4667) 评论(2) 推荐(2)
摘要:前言 一个商城系统,需要有,用户表,商品表,商品分类表,购物车表,订单表,订单明细表,支付信息表,以及物流信息表。 使用PowerDesigner对数据表以及他们之间的关系进行了粗略的设计得出了如下E-R图: 1.用户表 2. 商品表 3.商品类别表 4.购物车表 5. 订单表 6.订单明细表 7. 阅读全文
posted @ 2020-03-23 09:48 王大军 阅读(14325) 评论(0) 推荐(1)
摘要:前言 一个成功的管理系统,是由:[50% 的业务 + 50% 的软件] 所组成,而 50% 的成功软件又有 [25% 的数据库 + 25% 的程序] 所组成,数据库设计的好坏是一个关键。如果把企业的数据比做生命所必需的血液,那么数据库的设计就是应用中最重要的一部分。 有关数据库设计的材料汗牛充栋,大 阅读全文
posted @ 2020-03-22 19:03 王大军 阅读(2339) 评论(0) 推荐(0)
摘要:准备 join主要根据两表或多表之间列的关系,从这些表中进行数据的查询。 首先创建两张表:tb_emp(员工表)和tb_dept(部门表),并插入相关测试数据。 1.tb_emp表。 DROP TABLE IF EXISTS `tb_emp`; CREATE TABLE `tb_emp` ( `id 阅读全文
posted @ 2020-01-19 16:34 王大军 阅读(345) 评论(0) 推荐(0)
摘要:前言 锁。在现实生活中是为我们隐藏外界所使用的一种工具。在计算机中,是协调多个进程或线程并发访问某一资源的一种机制。在数据库当中,除了传统的计算资源(CPU、RAM、I/O等等)的争用之外,数据也是一种供许多用户共享访问的资源。如何保证数据并发访问的一致性、有效性,是所有数据库必须解决的一个问题,锁 阅读全文
posted @ 2020-01-19 15:09 王大军 阅读(383) 评论(0) 推荐(0)
摘要:1. 数据库启动登录连接操作 net start mysql # 启动MySQL mysql -h 地址 -p 端口 -u 用户名 -p 密码 # 连接服务器 mysqld --skip-grant-tables # 跳过权限验证登录MySQL update mysql.user set passw 阅读全文
posted @ 2020-01-18 23:16 王大军 阅读(1004) 评论(0) 推荐(0)
摘要:概述 MySQL事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你既需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务。 在MySQL中只有使用了InnoDB数据库引擎的数据库或表才支持事务。 事务处理可以 阅读全文
posted @ 2020-01-18 16:39 王大军 阅读(326) 评论(0) 推荐(0)
摘要:前言 本章介绍行锁的相关知识。行锁偏向InnoDB存储引擎,开销大,加锁慢,会出现死锁,锁定粒度小,发生锁冲突的概率低,但并发度高。 准备 1. 创建表tb_innodb_lock,注意数据库引擎为InnoDB。 CREATE TABLE test_innodb_lock ( a INT (11), 阅读全文
posted @ 2020-01-15 22:32 王大军 阅读(543) 评论(0) 推荐(0)
摘要:前言 锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算机资源(如CPU、RAM、IO等)的争用外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据并发访问性能的一个重要因素。从这个角度来说,锁对数据库 阅读全文
posted @ 2020-01-15 20:47 王大军 阅读(598) 评论(0) 推荐(0)
摘要:前言 全局查询日志用于保存所有的sql执行记录,该功能主要用于测试环境,在生产环境中永远不要开启该功能。 开启 命令设置 1、记录到表中 set global general_log =1 //开启全局日志,开启后会记录所有sql set global log_output='table' //记录 阅读全文
posted @ 2020-01-15 15:05 王大军 阅读(714) 评论(0) 推荐(0)
摘要:1. 慢查询日志 1.1 是什么 (1) MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。 (2)具体指运行时间超过long_query_time值的SQL,则会 阅读全文
posted @ 2020-01-15 13:42 王大军 阅读(682) 评论(0) 推荐(0)
摘要:前言 索引对于MySQL来说,是非常重要的篇章。索引知识点巨多,要想掌握透彻,需要逐个知识点--击破。本文介绍关于什么情况导致索引失效问题。 图片总结 索引失效 全值匹配(索引最佳) 若主键索引和唯一索引都存在,优先主键索引。 没有主键索引 使用唯一索引。 1. 违反最左前缀法则 如果索引有多列(复 阅读全文
posted @ 2020-01-14 16:09 王大军 阅读(378) 评论(0) 推荐(0)
摘要:简介 explain关键字可以模拟MySQL优化器执行SQL语句,可以很好的分析SQL语句或表结构的性能瓶颈。 explain的用途 1. 表的读取顺序如何 2. 数据读取操作有哪些操作类型 3. 哪些索引可以使用 4. 哪些索引被实际使用 5. 表之间是如何引用 6. 每张表有多少行被优化器查询 阅读全文
posted @ 2020-01-13 23:19 王大军 阅读(180) 评论(0) 推荐(0)
摘要:今天在做每个月定时扣费的功能 用到了Mysql的Event Scheduler 昨完之后发现一个问题 Event Scheduler 默认是不开启的 要在mysql内执行SET GLOBAL event_scheduler=on; 重启服务之后 测试发现 事件还是未被调用 , 然后在执行SHOW V 阅读全文
posted @ 2019-04-27 23:05 王大军 阅读(13773) 评论(1) 推荐(2)
摘要:存储过程 存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。存储过程是可编程的函数,在数据库中创建并保存,可以由SQL语句和控制结构组成。 存储过程说白了就是一堆 SQ 阅读全文
posted @ 2019-04-26 10:01 王大军 阅读(228) 评论(0) 推荐(0)