
mysql
冬子一定要努力
你可以菜,但不能不努力呀
展开
-
个人总结的mysql基础知识汇总
一、基本概念1.主键、外键、超键、候选键超键:在关系中能唯一标识元组的属性集称为关系模式的超键。一个属性可以为作为一个超键,多个属性组合在一起也可以作为一个超键。超键包含候选键和主键。候选键:是最小超键,即没有冗余元素的超键。主键:数据库表中对储存数据对象予以唯一和完整标识的数据列或属性的组合。一个数据列只能有一个主键,且主键的取值不能缺失,即不能为空值(Null)。外键:在一个表中存在的另一个表的主键称此表的外键。2.为什么用自增列作为主键如果我们定义了主键(PRIMARY K原创 2020-08-27 18:07:29 · 347 阅读 · 1 评论 -
sql新增保存写法
/** * 批量保存or更新核销码数据 * * @param orderSkus */ void batchInsertOrUpdateCode(List<ConsumeCodeEntity> orderSkus); <insert id="batchInsertOrUpdateCode" parameterType...原创 2020-04-16 16:57:13 · 287 阅读 · 0 评论 -
MySQL数据库设计开发规范(总结)
MySQL数据库设计开发规范目录MySQL数据库设计开发规范目录1. 规范背景与目的2. 设计规范2.1 数据库设计2.1.1 库名2.1.2 表结构2.1.3 列数据类型优化2.1.4 索引设计2.1.5 分库分表、分区表2.1.6 字符集2.1.7 程序层DAO设计建议2.1.8 一个规范的建表语句示例2.2 SQL编写2.2.1 DML语句2.2.2 多表连接2.2.3 事务2.2....原创 2019-10-29 16:36:33 · 263 阅读 · 0 评论 -
mysql中的like对应索引问题
mysql在使用like查询中,能不能用到索引?在什么地方使用索引呢?在使用like的时候,如果使用‘%%’,会不会用到索引呢?EXPLAINSELECT * FROM `user` WHERE username LIKE '%ptd_%';上面的结果是全表扫描(type == ALL),并没有使用到索引。只是使用一个%的查询结果:EXPLAIN SE...原创 2019-10-21 10:39:53 · 237 阅读 · 0 评论 -
分库分表方案
https://mp.weixin.qq.com/s/RKZKr2uXGyLcIbec5RZ_eg转载 2019-07-24 14:17:47 · 109 阅读 · 0 评论 -
分库分表后如何部署上线(转)
引言我们先来讲一个段子面试官:“有并发的经验没?”应聘者:“有一点。” 面试官:“那你们为了处理并发,做了哪些优化?” 应聘者:“前后端分离啊,限流啊,分库分表啊。。” 面试官:"谈谈分库分表吧?" 应聘者:“bala。bala。bala。。” 面试官心理活动:这个仁兄讲的怎么这么像网上的博客抄的,容我再问问。面试官:“你们分库分表后,如何部...原创 2019-08-23 18:40:31 · 371 阅读 · 0 评论 -
自增主键用完了怎么办(转)
引言在面试中,大家应该经历过如下场景面试官:"用过mysql吧,你们是用自增主键还是UUID?" 你:"用的是自增主键" 面试官:"为什么是自增主键?" 你:"因为采用自增主键,数据在物理结构上是顺序存储,性能最好,blabla…" 面试官:"那自增主键达到最大值了,用完了怎么办?" 你:"what,没复习啊!!" (然后,你就可以回...原创 2019-08-23 18:41:46 · 302 阅读 · 0 评论 -
MySQL面试汇总
1. 什么是索引?索引是一种数据结构,可以帮助我们快速的进行数据的查找.2. 索引是个什么样的数据结构呢?索引的数据结构和具体存储引擎的实现有关, 在MySQL中使用较多的索引有Hash索引,B+树索引等,而我们经常使用的InnoDB存储引擎的默认索引实现为:B+树索引.3. Hash索引和B+树所有有什么区别或者说优劣呢?首先要知道Hash索引和B+树索引的底层实现原理:...原创 2019-08-21 16:48:30 · 110 阅读 · 0 评论 -
mybatis高效批量插入一批数据,数据中只有一个属性值不同,其他值都一样
场景:因为有一批数据,就一个值不同,其他属性值都一样。然后查了很多没找到,然后自己尝试写了。结果成功了。很多小伙伴应该也遇到这样情况。不想使用list<对象>来遍历插入,看的太low了。代码分析如下:1.我们假设100条数据,只是他们skuid属性值不同,这个对象包裹的其他所有信息一样,新建一个实体类,存在一个属性List<string> skuids;2....原创 2019-09-05 15:37:24 · 2166 阅读 · 1 评论 -
MySQL开发规范
数据库对象命名规范数据库对象命名规范的对象是指数据库SCHEMA、表TABLE、索引INDEX、约束CONSTRAINTS等的命名约定数据库对象命名原则1. 命名使用具有意义的英文词汇,词汇中间以下划线分隔2. 命名只能使用英文字母、数字、下划线3. 避免用MySQL的保留字如:call、group等4. 所有数据库对象使用小写字母数据库命...原创 2019-09-26 09:33:14 · 132 阅读 · 0 评论 -
超,超,超级全面的MySQL优化面试解析!!!(转自大神)
作者:Anwenjuejin.im/post/5c6b9c09f265da2d8a55a855概述为什么要优化 系统的吞吐量瓶颈往往出现在数据库的访问速度上 随着应用程序的运行,数据库的中的数据会越来越多,处理时间会相应变慢 数据是存放在磁盘上的,读写速度无法和内存相比 如何优化 设计数据库时:数据库表、字段的设计,存储引擎 利用好MySQ...原创 2019-09-29 18:14:24 · 313 阅读 · 0 评论 -
SpringBoot 2.x ShardingSphere分库分表实战
https://mp.weixin.qq.com/s/2_W4w8KW3lTGYYA9fUJGzw原创 2019-07-05 10:40:52 · 202 阅读 · 0 评论 -
常用sql总结
1.update使用 :在一条UPDATE语句中,如果要更新多个字段,字段间不能使用“AND”,而应该用逗号分隔。update table set age =13 and name =make where id =1 and name = lus 错update table set age =13 ,name =make where id =1 and name = lus2 .两个表...原创 2019-06-08 13:14:54 · 117 阅读 · 0 评论 -
MySQL 的Explain分析
CREATE TABLE `a` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `uid` int(10) unsigned DEFAULT NULL, PRIMARY KEY (`id`), KEY `idx_uid` (`uid`) USING BTREE) ENGINE=InnoDB AUTO_INCREMENT=1 D...转载 2019-06-14 11:03:02 · 131 阅读 · 0 评论 -
c3p0,DBcp,Druid三大连接池的区别/性能【面试+工作】
先来点实用的:<!-- 配置dbcp数据源 --> <bean id="dataSource2" destroy-method="close" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="${j...转载 2019-06-19 18:58:41 · 1804 阅读 · 1 评论 -
sql调优有趣的文章汇总(转)
1.记一次非常有趣的MySQL调优经历https://mp.weixin.qq.com/s/yIH35DaZwo-u89EwAeHnbw2.详记一次MySQL千万级大表优化过程 https://mp.weixin.qq.com/s/4GZaxizhy3CWB_-Uxa2qdA3.一次非常有意思的SQL优化经历:从30248.271s到0.001s https://mp.weix...原创 2019-06-11 22:02:14 · 149 阅读 · 0 评论 -
mysql个人总结(面试使用)
一.联合索引1.什么是索引和索引分类:聚集索引和非聚集索引,等同于字典中的按拼音查和按偏旁查2.什么时候使用索引:外键,where语句后,常使用的查询条件字段。不适用的:text,image这中大类型的字段。3.索引限制:最好三个,不超过五个。影响性能4.索引的有效性:abc三个 ,只有ab,abc才有效用到。中间断开都不行。且不能加范围(<符号使用,失效),最左侧原则...原创 2019-06-11 22:34:20 · 239 阅读 · 0 评论 -
数据库建立索引原则
数据库建立索引的原则1,确定针对该表的操作是大量的查询操作还是大量的增删改操作。2,尝试建立索引来帮助特定的查询。检查自己的sql语句,为那些频繁在where子句中出现的字段建立索引。3,尝试建立复合索引来进一步提高系统性能。修改复合索引将消耗更长时间,同时,复合索引也占磁盘空间。4,对于小型的表,建立索引可能会影响性能5,应该避免对具有较少值的字段进行索引。6,避免选择大...原创 2019-06-26 10:32:34 · 332 阅读 · 0 评论 -
索引命中问题汇总
1.两种不会命中索引,导致全表扫描情况:第一类:“列类型”与“where值类型”不符,不能命中索引,会导致全表扫描(full table scan)。数据准备:create table t1 (cellvarchar(3) primary key)engine=innodb default charset=utf8;insert into t1(cell) values (...原创 2019-07-01 21:47:05 · 1445 阅读 · 0 评论 -
MySQL索引的理解
一、索引是什么?索引是帮助MySQL高效获取数据的数据结构。二、索引能干什么?索引非常关键,尤其是当表中的数据量越来越大时,索引对于性能的影响愈发重要。索引能够轻易将查询性能提高好几个数量级,总的来说就是可以明显的提高查询效率。三、索引的分类?1、从存储结构上来划分:BTree索引(B-Tree或B+Tree索引),Hash索引,full-index全文索引,R-Tree索引。...原创 2019-07-09 15:27:38 · 105 阅读 · 0 评论 -
分表分库的xml书写(京东的全是单表操作)
背景介绍: 京东的数据都是分库分表,所以为了方便全是单表操作。不存在join使用。每张表必须有表示删除与否,没有真正的删除。但是我也很奇怪,但是业务量太大了,为了方便查找和维护。所有操作都是单表。但是在分表业务中,设计同一个表多个。那么怎么打到不同的表上呢: 通过xml中拼接,实例如下<?xml version="1.0" encoding="UTF-8" ?>&l...原创 2019-06-28 20:11:19 · 685 阅读 · 0 评论 -
MySQL 数据类型汇总(最基础的是最有用的)
背景介绍: 最近入职jd,发现很多数据库的脚本和我之前在上家公司区别很大。于是再次复习了数据类型区别,sql一直都是最关键的,也是在最基础最细小的环节上,其实优化体验是最大的。希望自己和能看到的小伙伴保持一种勤于思考和发问的习惯:1.数值类型类型 大小 范围(有符号) 范围(无符号) 用途 TINYINT 1 字节 (-128,127)...原创 2019-06-29 17:19:33 · 234 阅读 · 0 评论 -
mysql优化之索引使用一
1.没有添加索引时,查询的情况分析:type是all且扫描到的rows也是全部数据。效率肯定是最差的。2.添加索引后:创建唯一索引时候,使用了索引且rows为1,明显效率提高了3.使用复合索引:chinese,maths.3.覆盖索引:在select后面使用加索引的字段。Extra使用了Using index效率是很高的4.索引工作原理:创建索...原创 2019-06-10 11:16:04 · 128 阅读 · 0 评论