mysql
liao0801_123
这个作者很懒,什么都没留下…
展开
-
mysql的聚簇索引和非聚簇索引
话不多说, 先放上总结:InnoDB中,表数据文件本身就是按B+Tree组织的一个索引结构,聚簇索引就是按照每张表的主键构造一颗B+树,同时叶子节点中存放的就是整张表的行记录数据,也将聚集索引的叶子节点称为数据页。这个特性决定了索引组织表中数据也是索引的一部分; 一般建表会用一个自增主键做聚簇索引,没有的话MySQL会默认创建,但是这个主键如果更改代价较高,故建表时要考虑自增ID不能频繁update这点。 我们日常工作中,根据实际情况自行添加的索引都是辅助索引,辅助索引就是一个为了需找主键索原创 2020-06-29 17:34:43 · 568 阅读 · 0 评论 -
Btree索引概念结构扩展
Btree索引(或Balanced Tree),是一种很普遍的数据库索引结构,oracle默认的索引类型(本文也主要依据oracle来讲)。其特点是定位高效、利用率高、自我平衡,特别适用于高基数字段,定位单条或小范围数据非常高效。理论上,使用Btree在亿条数据与100条数据中定位记录的花销相同。数据结构利用率高、定位高效Btree索引的数据结构如下: 结构看起来Btre...转载 2018-12-11 15:11:46 · 249 阅读 · 0 评论 -
存储过程+游标取一行案例
create PROCEDURE phoneDeal()BEGIN DECLARE name1 varchar(32); -- 密码 DECLARE pwd1 varchar(64); -- id -- DECLARE id int(11); -- 遍历数据结束标志 DECLARE done INT DEFAULT FALSE; DECL...原创 2019-01-23 19:31:53 · 292 阅读 · 0 评论 -
mysql for update 使用说明
原文:https://blog.csdn.net/u013803262/article/details/75195981 笔者在阅读技术书籍的时候无意间发现 一条select语句后面跟了for update,一时间就来了兴趣。 几番搜索之后,明白这是一个上锁用的。 上的是一个排它锁,也就是说,其他的事务是可以读取的。但是不能写入或者更新。 我们举一个项目中常见的应用场景吧。 比如有一张...转载 2019-01-15 17:50:14 · 278 阅读 · 0 评论 -
B树
https://blog.csdn.net/ligupeng7929/article/details/79529072https://blog.csdn.net/qq_38038480/article/details/81738079此篇原文:https://www.jianshu.com/p/528d30a5de76 数据库为什么使用B+树1. 与二叉树相比 二叉树相比...原创 2019-02-24 19:43:59 · 150 阅读 · 0 评论 -
红黑树
参考资料:https://www.cnblogs.com/yyxt/p/4983967.htmlhttp://www.360doc.com/content/18/0904/19/25944647_783893127.shtml二叉查找树 二叉查找树,也称有序二叉树(ordered binary tree),或已排序二叉树(sorted binary tree),是指一棵空树...原创 2019-02-24 23:30:44 · 136 阅读 · 0 评论 -
mongoDB和mysql对比分析及选型
一、前言为什么调研MongoDB? 下图是DB-Engines2017年8月数据库的排名统计,可以看到MongoDB总排名在第5,在Nosql数据库中排名第1。优点:1)社区活跃,用户较多,应用广泛。2)MongoDB在内存充足的情况下数据都放入内存且有完整的索引支持,查询效率较高。3)MongoDB的分片机制,支持海量数据的存储和扩展。缺点:1)不支持事务...转载 2019-04-18 10:38:48 · 21802 阅读 · 4 评论 -
mongoDB和mysql的插入/查询性能测试
1.1MongoDB的简单介绍在当今的数据库市场上,MySQL无疑是占有一席之地的。作为一个开源的关系型数据库,MySQL被大量应用在各大网站后台中,承担着信息存储的重要作用。2009年,甲骨文公司(Oracle)收购Sun公司,MySQL成为Oracle旗下产品。而MongoDB是一种文件导向的数据库管理系统,属于一种通称为NoSQL的数据库,是10gen公司旗下的开源产品,其内部数...转载 2019-04-19 10:36:33 · 2035 阅读 · 2 评论 -
powerDesigner生成excel文档
数据库设计文档编写时,在pd写好了, 可以直接导出excel已经完成设计的pd设计打开pd,快捷键Ctrl + Shift + X或者Tools>Exectue Commands > Edit/Run Script'******************************************************************************...原创 2019-07-09 18:00:49 · 1024 阅读 · 4 评论 -
mysql使用count+group by 日期,无数据的日期补0方法
1、先用一个查询把指定日期范围的日期列表搞出来-- t_device 为任意表,只需要数据量大于要统计的天数SELECT @cdate := date_add(@cdate, INTERVAL - 1 DAY) AS statisName, 0 AS countFROM ( SELECT @cdate := date_add(CURDATE(), INTERVAL + 1...原创 2019-09-06 16:08:30 · 3145 阅读 · 0 评论 -
mysql分组统计百分比
SELECT t2.time statisName, ROUND(T1.co / T2.totalCo * 100, 1) value FROM ( SELECT DATE_FORMAT(CREATE_TIME, '%Y-%m') time, COUNT(*) AS co FROM t_event WHERE ...原创 2019-09-24 10:11:05 · 701 阅读 · 0 评论 -
mysql查看连接数show processlist
指令show PROCESSLIST;use information_schema;SELECT user, host, time, command FROM information_schema.processlist where host LIKE '10.22';show VARIABLES like '%conne%';如果有 SUPER 权限,则可以看到全部的线程,否...原创 2018-12-06 19:22:10 · 875 阅读 · 0 评论 -
阿里巴巴开发手册 (技术类)
【强制】POJO类中布尔类型的变量,都不要加is前缀,否则部分框架解析会引起序列化错误。反例:定义为基本数据类型Boolean isDeleted的属性,它的方法也是isDeleted(),RPC框架在反向解析的时候,“误以为”对应的属性名称是deleted,导致属性获取不到,进而抛出异常。【推荐】如果模块、接口、类、方法使用了设计模式,在命名时需体现出具体模式。 说明:将设计模式体现在名...原创 2018-12-07 19:07:14 · 1244 阅读 · 0 评论 -
mysql连接未释放,导致无法进行DB操作(长连接及短连接)
相关连接: show processlist 分析:http://blog.chinaunix.net/uid-134240-id-220211.html长连接相关:https://www.cnblogs.com/wangtao_20/p/4783524.html项目运行时抛出异常:org.hibernate.exception.GenericJDBCException: Could...原创 2020-08-12 01:22:12 · 2100 阅读 · 0 评论 -
mysql占位符,获取最近插入的id,关联删除
mysql占位符 : select @id := LAST_INSERT_ID();select @id := userId from user;insert into table1 values(@id,'content'); mysql 获取最近插入的id(自增列)在MySQL中,使用auto_increment类型的id字段作为表的主键。通常的做法,是通过“selec...原创 2018-09-27 15:10:45 · 1167 阅读 · 0 评论 -
大数据量表的查询优化及索引使用
一、对于运算逻辑,尽可能将要统计的各项目整合在一个查询语句中计算,而不是用分组条件或分项目调用多个查询语句,而后在代码里计算结果。二、查询语句的优化,诸如不用"select *"、多表关联查询时添加别名于查询字段上、避免使用in、not in关键字、非去除重复时用union all替换union、先过滤后分组、排序等等。三、在无法更改数据结构、不影响其它业务操作情况下,为查询、统计项建立索...转载 2018-11-01 11:00:38 · 1650 阅读 · 0 评论 -
MySQL:浅析 Impossible WHERE noticed after reading const tables
使用 EXPLAIN 执行计划的时候,在 Extra 中偶尔会看到这样的描述:Impossible WHERE noticed after reading const tables字面上的意思是:读取const tables表之后, 没有发现匹配的行。 通过示例我们重现一下该场景。首先创建两张表,班级表(class),学生表(student)。CREATE TABLE `class`...转载 2018-11-13 16:11:55 · 228 阅读 · 0 评论 -
mysql 索引失效的几种原因
索引并不是时时都会生效的,比如以下几种情况,将导致索引失效: 1.如果条件中有or,即使其中有条件带索引也不会使用(这也是为什么尽量少用or的原因) 注意:要想使用or,又想让索引生效,只能将or条件中的每个列都加上索引 2.对于多列索引,不是使用的第一部分,则不会使用索引 3.like查询是以%开头 4.如果列类型是字符串,那一定要在条件...转载 2018-11-13 16:26:02 · 348 阅读 · 0 评论 -
MySQL Explain详解
额外阅读:http://www.cnblogs.com/miskis/p/9081187.html在日常工作中,我们会有时会开慢查询去记录一些执行时间比较久的SQL语句,找出这些SQL语句并不意味着完事了,些时我们常常用到explain这个命令来查看一个这些SQL语句的执行计划,查看该SQL语句有没有使用上了索引,有没有做全表扫描,这都可以通过explain命令来查看。所以我们深入了解MySQ...转载 2018-11-13 16:37:36 · 121 阅读 · 0 评论 -
mysql优化Analyze Table
Analyze TableMySQL 的Optimizer(优化元件)在优化SQL语句时,首先需要收集一些相关信息,其中就包括表的cardinality(可以翻译为“散列程度”),它表示某个索引对应的列包含多少个不同的值——如果cardinality大大少于数据的实际散列程度,那么索引就基本失效了。我们可以使用SHOW INDEX语句来查看索引的散列程度:SHOW INDEX FROM ...转载 2018-11-14 17:59:17 · 587 阅读 · 0 评论 -
mysql锁机制与不同引擎区别(innodb,myisam)
参考资料MyISAM与InnoDB两者之间区别与选择,详细总结,性能对比:https://www.cnblogs.com/y-rong/p/8110596.htmlInnodb与Myisam引擎的区别与应用场景:https://www.cnblogs.com/changna1314/p/6878900.htmlMySQL- InnoDB锁机制:https:/...原创 2018-11-14 20:09:46 · 395 阅读 · 0 评论 -
锁表解决--MySQL中Waiting for table metadata lock的解决方法
最近项目中的数据库查询经常挂起,应用程序启动后也报操作超时。测试人员就说数据库又挂了(貌似他们眼中的连接失败,查询无果都是挂了),通过 show processlist 一看,满屏都是 Waiting for table metadata lock 状态的连接。第一反应就是kill掉这些连接,奈何连接实在太多,实在kill不过来,于是重启服务,貌似重启果真能解决90%的问题,但如果不找到问题原因,...转载 2018-05-11 14:36:28 · 1109 阅读 · 0 评论