
数据库
文章平均质量分 94
技术王老五
这个作者很懒,什么都没留下…
展开
-
为什么InnoDB表要建议用自增列做主键而MyISAM却不需要
在创建数据库的时候我们总是会创建一个自增的主键ID,可是你想过没有?这个自增的ID为什么要设置?可不可以不设置,不设置的后果是什么?带着这来两个疑问我们来验证一下。CREATE TABLE `student_table` ( `id` int NOT NULL AUTO_INCREMENT, `stuname` varchar(255) DEFAULT NULL, `birthday` date DEFAULT NULL, `create_time` datetime DEFAULT原创 2021-03-28 22:50:34 · 777 阅读 · 2 评论 -
MySQL优化之大字段longtext、text引发的生产问题
背景对接多个外部接口,需要保存请求参数以及返回参数,方便消息的补偿,因为多个外部接口,多个接口字段都不统一,整体使用一个大字段(longtext)进行存储,但是当数据只有40w的时候查询速度就非常慢长达40s左右。CREATE TABLE `risk_request_log_bak` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID', `risk_buss_no` varchar(32) DEFAULT NULL COM原创 2021-03-21 11:33:07 · 16614 阅读 · 0 评论 -
使用JdbcTemplate数据迁移,事务控制以及不生效原因
环境JDK1.8: <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper-spring-boot-starter</artifactId> <version>2.0.2</version> </dependency> &l原创 2020-11-29 12:23:56 · 2221 阅读 · 0 评论 -
mysql事务隔离级别的选择
引言开始我们的内容,相信大家一定遇到过下面的一个面试场景面试官:“讲讲mysql有几个事务隔离级别?”你:“读未提交,读已提交,可重复读,串行化四个!默认是可重复读”面试官:“为什么mysql选可重复读作为默认的隔离级别?”(你面露苦色,不知如何回答!)面试官:"你们项目中选了哪个隔离级别?为什么?"你:“当然是默认的可重复读,至于原因。。呃。。。”(然后你就可以回去等通知了...原创 2020-03-29 17:37:55 · 1040 阅读 · 0 评论 -
数据库中间件详解(转载)
1数据库拆分过程及挑战 互联网当下的数据库拆分过程基本遵循的顺序是:垂直拆分、读写分离、分库分表(水平拆分)。每个拆分过程都能解决业务上的一些问题,但同时也面临了一些挑战。1.1 垂直拆分对于一个刚上线的互联网项目来说,由于前期活跃用户数量并不多,并发量也相对较小,所以此时企业一般都会选择将所有数据存放在一个数据库 中进行访问操作。举例来说,对于一个电商系统,其用户模...原创 2020-01-16 16:17:19 · 760 阅读 · 2 评论 -
数据库中间件的选型的思考(转载)
背景:随着业务的增长,各种业务数据的快速增长,单表数据量的急剧增长,单表的读写性能以及吞吐量呈下降的趋势。因此需要使用分库分表的机制来保证服务的高性能,然而开源的数据库中间件众多,从中挑选一款合适的中间件必须要考虑的问题:什么时候使用中间件,中间件作用 中间件原理,开源的中间件 推荐使用的中间件1.中间件的使用时机业务的发展使数据库中的数据量变大,几千万或者上亿级别的数据表出现,...原创 2020-01-10 16:21:33 · 807 阅读 · 1 评论 -
B+树适合作为索引的结构 以及索引原理
一.索引的本质:索引是帮助数据库高效的获取数据的数据结构,因此可以理解为索引的本质就是数据结构增加查询的速度有许多的算法:最简单的顺序查找,但是当数据量变大的时候会查询效率会非常的低,二分查找,二叉树查找,但是每一种算法都只适用于特定的数据结构上,如二分查找要求数据有序,二叉树应用于二叉树上,因此要适用这个算法的同时要维护好与之匹配的数据结构,这种数据结构就是数据库维护的索引这个例...原创 2019-12-10 17:12:51 · 1071 阅读 · 0 评论