MyISAM

Spring Transaction Management with Hibernate and MySQL, Global and Local

孤街浪徒 提交于 2021-02-20 19:18:08
问题 Im working on developing a webapplication with MySQL Server 5.1, Spring 3.0.5 and Hibernate 3.6. I use Springs Transaction Management. Im a newbie, so please be patient with me if I ask a question which is easy to answer. :-) 1) I read about global (xa) and local transactions. Is it correct, that global transactions mean transactions, which execute dataoperations on different resources (like different databases). And that local transactions execute dataoperations on only one resource

一份还热乎的蚂蚁金服面经(已拿Offer)!附答案!!

泄露秘密 提交于 2021-02-18 05:58:26
点击上方“ 方志朋 ”,选择“置顶公众号” 技术文章第一时间送达! 本文转载于公众号:Hollis 由于作者面试过程中高度紧张,本文中只列出了自己还记得的部分题目。 经历了漫长一个月的等待,终于在前几天通过面试官获悉已被蚂蚁金服录取,这期间的焦虑、痛苦自不必说,知道被录取的那一刻,一整年的阴霾都一扫而空了。 笔者面的是阿里的Java研发工程师岗,面试流程是3轮技术面+1轮hr面。 1 意外的一面 一面的时候大概是3月12号,面完等了差不多半个月才突然接到二面面试官的电话。一面可能是简历面,所以问题比较简单。 ArrayList和LinkedList区别 ArrayList 是一个可改变大小的数组。当更多的元素加入到ArrayList中时,其大小将会动态地增长。内部的元素可以直接通过get与set方法进行访问,因为ArrayList本质上就是一个数组, LinkedList 是一个双链表,在添加和删除元素时具有比ArrayList更好的性能.但在get与set方面弱于ArrayList。 当然,这些对比都是指数据量很大或者操作很频繁的情况下的对比,如果数据和运算量很小,那么对比将失去意义。 什么情况会造成内存泄漏 在Java中,内存泄漏就是存在一些被分配的对象,这些对象有下面两个特点: 首先,这些对象是可达的,即在有向图中,存在通路可以与其相连; 其次,这些对象是无用的

一份还热乎的蚂蚁金服面经(已拿Offer)!附答案!!

非 Y 不嫁゛ 提交于 2021-02-18 05:57:24
本文来自我的知识星球的球友投稿,他在最近的校招中拿到了蚂蚁金服的实习生Offer,整体思路和面试题目由作者——泽林提供,部分答案由Hollis整理自知识星球《Hollis和他的朋友们》中「直面Java」板块。 经历了漫长一个月的等待,终于在前几天通过面试官获悉已被蚂蚁金服录取,这期间的焦虑、痛苦自不必说,知道被录取的那一刻,一整年的阴霾都一扫而空了。 笔者面的是阿里的Java研发工程师岗,面试流程是3轮技术面+1轮hr面。 意外的一面 一面的时候大概是3月12号,面完等了差不多半个月才突然接到二面面试官的电话。一面可能是简历面,所以问题比较简单。 ArrayList和LinkedList区别 ArrayList 是一个可改变大小的数组.当更多的元素加入到ArrayList中时,其大小将会动态地增长.内部的元素可以直接通过get与set方法进行访问,因为ArrayList本质上就是一个数组. LinkedList 是一个双链表,在添加和删除元素时具有比ArrayList更好的性能.但在get与set方面弱于ArrayList. 当然,这些对比都是指数据量很大或者操作很频繁的情况下的对比,如果数据和运算量很小,那么对比将失去意义. 什么情况会造成内存泄漏 在Java中,内存泄漏就是存在一些被分配的对象,这些对象有下面两个特点: 首先,这些对象是可达的,即在有向图中,存在通路可以与其相连

一份还热乎的蚂蚁面经(已拿Offer)!附答案!!

左心房为你撑大大i 提交于 2021-02-18 05:30:03
本文来自我的知识星球的球友投稿,他在最近的校招中拿到了蚂蚁金服的实习生Offer,整体思路和面试题目由作者——泽林提供,部分答案由Hollis整理自知识星球《Hollis和他的朋友们》中「直面Java」板块。 经历了漫长一个月的等待,终于在前几天通过面试官获悉已被蚂蚁金服录取,这期间的焦虑、痛苦自不必说,知道被录取的那一刻,一整年的阴霾都一扫而空了。 笔者面的是阿里的Java研发工程师岗,面试流程是3轮技术面+1轮hr面。 意外的一面 一面的时候大概是3月12号,面完等了差不多半个月才突然接到二面面试官的电话。一面可能是简历面,所以问题比较简单。 ArrayList和LinkedList区别 ArrayList 是一个可改变大小的数组.当更多的元素加入到ArrayList中时,其大小将会动态地增长.内部的元素可以直接通过get与set方法进行访问,因为ArrayList本质上就是一个数组. LinkedList 是一个双链表,在添加和删除元素时具有比ArrayList更好的性能.但在get与set方面弱于ArrayList. 当然,这些对比都是指数据量很大或者操作很频繁的情况下的对比,如果数据和运算量很小,那么对比将失去意义. 什么情况会造成内存泄漏 在Java中,内存泄漏就是存在一些被分配的对象,这些对象有下面两个特点: 首先,这些对象是可达的,即在有向图中,存在通路可以与其相连

深入了解Mysql索引

时间秒杀一切 提交于 2021-02-17 21:49:29
前言 欢迎关注我的微信公众号【 Mflyyou 】获取持续更新。 github.com/zhangpanqin/MFlyYou 收集技术文章及我的系列文章,欢迎 Star。 数据库中的索引是为了提高查询效率的,将像字典的目录一样。 当我们了解索引的原理之后,就没有必要去死记硬背所谓的 Mysql 军规之类的东西了。 本文内容 索引的类型:UNIQUE,FULLTEXT,SPATIAL,NORMAL(普通索引) 索引为什么会采用 B+ 树结构,为什么不是二叉树、B- 树 Mysql 中 B+ 树索引 和 Hash 索引应该选哪个 为什么索引的使用需要遵循 最左匹配原则 联合索引 、 聚簇索引 和 覆盖索引 分别是什么 索引添加的判断依据是什么 索引 Mysql 中常见的索引类型有: 普通索引 唯一索引 全文索引 空间索引 Mysql 中索引的数据结构有: B+Tree ,存储引擎 InnoDB 和 MyISAM 都支持。因为我们一般都是使用存储引擎 InnoDB 和 MyISAM ,我们都是使用 B+Tree 数据结构的索引。 HASH ,存储引擎 MEMORY 支持,存储引擎 InnoDB 和 MyISAM 不能手动定义 HASH 索引。 因此,我们详细了解 B+Tree 就行了。 我们先来介绍一下两种索引的数据结构的区别,感受一些各自的使用场景。 Hash 数据结构的索引

《高性能MySQL》- 查询性能优化

99封情书 提交于 2021-02-17 02:11:15
二、查询性能优化 2.1 优化数据访问 2.1.1 只查询需要的列 2.1.2 只查询需要的行 响应时间 扫描行数和返回的行数 扫描行数和访问类型 如果扫描行数远远大于返回行数,优化方法: 使用覆盖索引 改变表结构。使用汇总表 重写复杂SQL 2.2 重构查询方式 2.2.1 一个复杂查询还是多个简单查询 连表数据重复很多时,减少冗余记录查询 可以使用缓存 可以使用异步查询 可以支持应用层分库分表 2.2.2 切分查询 使用分治思想,切分大查询为小查询,然后归并。在DML语句可以减少长事务对连接的持有时间,减少锁冲突 2.2.3 分解关联查询 连表数据重复很多时,减少冗余记录查询 可以使用缓存 可以使用异步查询 可以支持应用层分库分表 可能提升性能。比如IN按ID顺序查询,比连表随机查找更快 相当于使用了哈希索引,而不是嵌套循环查询 2.3 查询优化器局限 循环优化器不是每次都是最优结果。 2.3.1 关联子查询优化 一般建议使用左外连接来替代子查询 当返回结果只有一个表的某些列时,关联子查询会更好 不过每个具体的案例会各有不同,有时候子查询写法也会快些。例如,当返回结果中只有一个表中的某些列的时候。听起来,这种情况对于关联查询效率也会很好。具体情况具体分析,例如下面的关联,我们希望返回所有包含同一个演员参演的电影,因为一个电影会有很多演员参演,所以可能会返回一些重复的记录:

2019 最新 阿里天猫、蚂蚁、钉钉ava 面试题汇总,附答案

主宰稳场 提交于 2021-02-16 16:36:35
Java面试前需要做足各方面的准备工作,肯定都会浏览大量的面试题,本人也不例外,这是一些最新面试题,分享给大家。 Java基础 面向对象的特征:继承、封装和多态 int 和 Integer 有什么区别; Integer的值缓存范围 说说反射的用途及实现 Http 请求的 GET 和 POST 方式的区别 MVC设计思想 什么是Java序列化和反序列化; 如何实现Java序列化; 重载和重写的区别 进程和线程 线程和进程的概念 并行和并发的概念 创建线程的方式及实现 进程间通信的方式 说说 CountDownLatch、CyclicBarrier 原理和区别 说说 Semaphore 原理 说说 Exchanger 原理 ThreadLocal 原理分析; ThreadLocal为什么会出现OOM,出现的深层次原理 讲讲线程池的实现原理 线程池的几种实现方式 线程的生命周期;状态是如何转移的 锁机制 什么是线程安全?如何保证线程安全? 重入锁的概念;重入锁为什么可以防止死锁? 产生死锁的四个条件 如何检查死锁 volatile 实现原理 synchronized 实现原理(对象监视器) synchronized 与 lock 的区别 AQS 同步队列 CAS 无锁的概念;乐观锁和悲观锁 常见的原子操作类 什么是 ABA 问题;出现 ABA 问题 JDK 是如何解决的

mysql数据库优化大全

限于喜欢 提交于 2021-02-14 08:50:48
数据库优化 sql语句优化 索引优化 加缓存 读写分离 分区 分布式数据库(垂直切分) 水平切分 MyISAM和InnoDB的区别: 1. InnoDB支持事务,MyISAM不支持,对于InnoDB每一条SQL语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条SQL语言放在begin和commit之间,组成一个事务; 2. InnoDB支持外键,而MyISAM不支持。对一个包含外键的InnoDB表转为MYISAM会失败; 3. InnoDB不保存表的具体行数,执行select count(*) from table时需要全表扫描。而MyISAM用一个变量保存了整个表的行数,执行上述语句时只需要读出该变量即可,速度很快; 4. Innodb不支持全文索引,而MyISAM支持全文索引,查询效率上MyISAM要高; 5. 锁机制不同: InnoDB 为行级锁,myisam 为表级锁。 注意:当数据库无法确定,所找的行时,也会变为锁定整个表。 如: update table set num = 10 where username like “%test%”; 作者:Oscarwin 链接: https://www.zhihu.com/question/20596402/answer/211492971 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权

mysql优化建议大全

大城市里の小女人 提交于 2021-02-14 08:36:06
1、选取最适用的字段属性,尽可能减少定义字段长度,尽量把字段设置NOT NULL,例如'省份,性别',最好设置为ENUM 2、使用连接(JOIN)来代替子查询: a.删除没有任何订单客户:DELETE FROM customerinfo WHERE customerid NOT in(SELECT customerid FROM orderinfo) b.提取所有没有订单客户:SELECT FROM customerinfo WHERE customerid NOT in(SELECT customerid FROM orderinfo) c.提高b的速度优化:SELECT FROM customerinfo LEFT JOIN orderid customerinfo.customerid=orderinfo.customerid WHERE orderinfo.customerid IS NULL 3、使用联合(UNION)来代替手动创建的临时表 a.创建临时表:SELECT name FROM `nametest` UNION SELECT username FROM `nametest2` 4、事务处理: a.保证数据完整性,例如添加和修改同时,两者成立则都执行,一者失败都失败 mysql_query("BEGIN"); mysql_query("INSERT INTO

MySQL学习(六)

99封情书 提交于 2021-02-13 21:28:41
1 注意 select cout(*) from 表名; 查询的就是绝对的行数,哪怕某一列所有字段全部为NULL,也计算在内。而select cout(列名) form 表名;查询的是该列不为null的所有行的行数。 用count(*)和count(1)那个更好? 对于myisam引擎的表,没有区别,这种引擎内部有一个计数器在维护着行数,对Innodb的表,用count(*)直接读行数,效率很低,因为Innodb的表真的要去数一遍。 2 mysql> select sum(shop_price) from -> goods -> where cat_id = 3; mysql> select sum(goods_number) from goods -> where cat_id = 4; 计算每个栏目下的库存量之和 配合group语句使用 mysql> select cat_id, sum(goods_number) from goods -> group by cat_id; 典型错误 mysql> select goos_id,sum(goods_number) from goods; ERROR 1140 (42000): In aggregated query without GROUP BY, expression #1 of SELECT list contains