随笔分类 -  java / MySQL

摘要:官网SQL优化手段 sql优化没有固定的标准,本质上就是做减法,减少io、cpu等消耗,让sql执行的更快,最终达到我们的性能要求。以下是一些常规性的建议,希望能让大家少踩些坑。 案例:创建10万数据 DROP TABLE IF EXISTS `sys_user`; CREATE TABLE `sy 阅读全文
posted @ 2022-08-24 17:21 言思宁 阅读(41) 评论(0) 推荐(0) 编辑
摘要:主从同步的优点: 读写分离提高数据库并发处理能力 数据备份 高可用性。也就是当服务器出现故障或宕机的情况下,可以切换到从服务器上,保证服务的正常运行。 Binlog&Undolog 二进制日志(Binlog):存储的是一个又一个事件(Event),这些事件分别对应着数据库的更新操作,比如INSERT 阅读全文
posted @ 2022-08-24 17:20 言思宁 阅读(369) 评论(0) 推荐(0) 编辑
摘要:MVCC:多版本并发控制技术。保存数据的历史版本。这样我们就可以通过比较版本号决定数据是否显示出来。 InnoDB中的RC和RR隔离事务是基于多版本并发控制(MVCC)实现高性能事务。一旦数据被加上排他锁,其他事务将无法加入共享锁,且处于阻塞等待状态,如果一张表有大量的请求,这样的性能将是无法支持的 阅读全文
posted @ 2022-08-24 17:19 言思宁 阅读(52) 评论(0) 推荐(0) 编辑
摘要:优化表设计 表结构要尽量遵循第三范式的原则,让数据结构更加清晰规范,减少冗余字段,同时也减少了在更新,插入和删除数据时等异常情况的发生。 反范式原则。如果分析查询应用比较多,尤其是需要进行多表联查的时候,可以采用反范式进行优化。当冗余信息有价值或者能大幅度提高查询效率的时候,我们就可以采取反范式的优 阅读全文
posted @ 2022-08-24 17:16 言思宁 阅读(32) 评论(0) 推荐(0) 编辑
摘要:1. 索引的概述 索引可以帮助我们从海量的数据中快速定位想要查找的数据。不过索引也存在一些不足,比如占用存储空间、降低数据库写操作的性能等,如果有多个索引还会增加索引选择的时间。 索引主要有4种,分别是: 普通索引:是基础的索引,没有任何约束,主要用于提高查询效率。 唯一索引:在普通索引的基础上增加 阅读全文
posted @ 2022-08-24 17:16 言思宁 阅读(58) 评论(0) 推荐(0) 编辑
摘要:事务的特性: A,也就是原子性(Atomicity)。数据操作是不可分割 C,就是一致性(Consistency)。一致性指的就是数据库在进行事务操作后,数据库的完整性约束不能被破坏。 I,就是隔离性(Isolation)。它指的是每个事务都是彼此独立的,不会受到其他事务的执行影响。 D,指的是持久 阅读全文
posted @ 2022-08-24 17:15 言思宁 阅读(88) 评论(0) 推荐(0) 编辑
摘要:1. 非关联子查询 子查询从数据表中查询了数据结果,如果这个数据结果只执行一次,然后这个数据结果作为主查询的条件进行执行 例如:假设我们想要知道哪个球员的身高最高,最高身高是多少 select play_name, height from player where height = (select 阅读全文
posted @ 2022-08-24 17:11 言思宁 阅读(95) 评论(0) 推荐(0) 编辑
摘要:聚集函数,它是对一组数据进行汇总的函数,输入的是一组数据的集合,输出的是单个值。 1. 聚集函数 SQL中的聚集函数一共包括5个: COUNT(role_assist)会忽略值为NULL的数据行,而COUNT(*)只是统计数据行数,不管某个字段是否为NULL。 AVG、MAX、MIN等聚集函数会自动 阅读全文
posted @ 2022-08-24 17:10 言思宁 阅读(27) 评论(0) 推荐(0) 编辑
摘要:五、DQL——SQL函数 在SQL中我们也可以使用函数对检索出来的数据进行函数操作。 SQL函数会带来的问题: 使用的函数很可能在运行环境中无法工作。大部分DBMS会有自己特定的函数,这就意味着采用SQL函数的代码可移植性是很差的,因此在使用函数的时候需要特别注意。 注意大小写规范。 Linux的环 阅读全文
posted @ 2022-08-24 17:09 言思宁 阅读(32) 评论(0) 推荐(0) 编辑
摘要:1. 筛选案例实操 查询所有最大生命值大于6000的英雄: select name from heros where hp_max > 6000 要查询所有最大生命值在5399到6811之间的英雄: select name from heros where hp_max between 5399 a 阅读全文
posted @ 2022-08-24 17:08 言思宁 阅读(13) 评论(0) 推荐(0) 编辑
摘要:三、DQL——SELECT 1. 查询列 select name from heros select name, hp_max, mp_max, attack_max, defense_max from heros select * from heros 2. 起别名 select name as 阅读全文
posted @ 2022-08-24 17:06 言思宁 阅读(21) 评论(0) 推荐(0) 编辑
摘要:在DML中,我们常用的功能是增删改,分别对应的命令是CREATE、DROP和ALTER。 1. 对数据库进行定义 CREATE DATABASE nba; // 创建一个名为nba的数据库 DROP DATABASE nba; // 删除一个名为nba的数据库 2. 对数据表进行定义 CREATE 阅读全文
posted @ 2022-08-24 17:05 言思宁 阅读(21) 评论(0) 推荐(0) 编辑
摘要:一、概述 SQL有两个重要的标准,分别是SQL92和SQL99,它们分别代表了92年和99年颁布的SQL标准。 E-R(实体-关系)图 它是我们用来描述现实世界的概念模型,在这个模型中有3个要素:实体、属性、关系。 实体就是我们要管理的对象,属性是标识每个实体的属性,关系则是对象之间的关系。 SQL 阅读全文
posted @ 2022-08-24 17:03 言思宁 阅读(105) 评论(0) 推荐(0) 编辑
摘要:mysql执行计划 执行计划:就是sql查询的顺序,以及如何使用索引查询,返回的结果集的行数 EXPLAIN select * from user where username='neo' id: 查询的序号,有几个select就显示几行,id时按照select出现的顺序增长的,id列的值越大执行的 阅读全文
posted @ 2022-03-27 14:31 言思宁 阅读(121) 评论(0) 推荐(0) 编辑
摘要:DataSource JDBC2.0提供了DataSource接口,它定义了数据库连接的规范。它负责建立与数据库的连接。当在应用程序中访问数据库时,不必编写连接数据库的代码,直接引用DataSource获取数据库的连接对象即可。 相关包 C3P0、Druid 等包实现了DataSource接口,使用 阅读全文
posted @ 2021-12-29 21:55 言思宁 阅读(143) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示