![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据库_常见问题
数据库_常见问题
开发1024
IT从业六载的Java士兵
展开
-
MySQL数据传输
场景数据库实例localhost 里有一个库,要将其转移到另一个数据库实例方案我们可以采用Navicat来实现:先将localhost实例中的库转储SQL文件使用navciat连接目标实例,随表选择一个库并新建查询窗口点击加载,并选择1步刚才转储的SQL文件运行之前,窗口里首行写上下面代码,不然会报错/* 选中一个数据库,不然会报错*/USE mysql;DROP ...原创 2019-12-31 06:15:25 · 1955 阅读 · 2 评论 -
mysql8.0认证方式修改
使用xtrabackup备份mysql8.0的时候报如下错误:[root@localhost bin]# ./innobackupex --defaults-file=/opt/mha/mysql8/conf/my.cnf --user=root --password=mysql -P13306 --socket=/opt/mha/mysql8/mysql.sock /opt/mha/xbackup190923 15:27:03 innobackupex: Starting the backup ope原创 2020-11-13 09:40:56 · 577 阅读 · 0 评论 -
MySQL 8.0 Public Key Retrieval is not allowed 错误的解决方法
在使用 MySQL 8.0 时重启应用后提示 com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Public Key Retrieval is not allowed最简单的解决方法是在连接后面添加 allowPublicKeyRetrieval=true文档中https://mysql-net.github.io/MySqlConnector/connection-options/给出的解释是:如果用户使用了原创 2020-11-13 09:41:11 · 190 阅读 · 0 评论 -
删改数据如何避免锁表?等等,啥是锁呀
文章目录什么是锁机制共享锁和排它锁共享锁例子:共享锁在释放之前,其它的事务不能修改数据例子:两个事务对同样的数据加共享锁排它锁例子:没有加锁的子句,但是数据库自动加锁例子:手动加锁如何减少并发操作的锁冲突在删改数据的时候,如何避免锁表?对于这个问题,有的童鞋懵逼了,啥是锁表?这是MysQL平时在执行sql的时候会自动加锁,所以很多童鞋不知道锁机制也是很正常的。下面就介绍下MySQL的锁机制什么是锁机制因为我们平常使用的是 InnoDB,就说下InnoDB的锁机制,采用的是行级锁,这个比MyISAM引原创 2020-06-08 17:54:28 · 1523 阅读 · 0 评论 -
读多写少,读多写多
这篇文章没有什么操作性,主要是让伙伴们开拓视野的,通过一些使用场景,并没有太多上手的操作。读多写少的业务场景普遍来说,绝大多数系统都是读多写少的也就是select语句执行的多,而insert、delete、update这样的操作执行的很少,比如上面都是属于读多写少的范畴,就那在线购物来说我们在淘宝上看的多买的少,也就是货比三家后才下单,我们在货比三家的过程中,其实产生了很多查询的操作,只有在下单的时候才产生了insert操作。再比如我们在手机上看了多条新闻,才回复一条评论。再有就是58同原创 2020-06-08 16:13:05 · 1430 阅读 · 0 评论 -
千万数据,如何快速商品分页
MySQL的limit子句的语法,我们是非常熟悉的,查询的起始位置不同,消耗的时间也是不一样的。我们创建一个数据表t_test:字段名类型长度小数点不是 null虚拟键idint00√√valvarchar2550√我们接下来往数据表里添加1000万条数据,怎么导入呢?先把数据写到文件里面,再导入到表里,先来看下生成数据的java代码吧public class Demo2{ public static void main(String原创 2020-06-08 14:57:37 · 326 阅读 · 0 评论 -
逻辑删除还是物理删除
看到标题,有的童鞋心中暗想“数据删除有什么可提的呢?不就是执行个delete语句吗?有什么难的呀?”其实呢数据删除没有你想的这么简单,一般情况下公司会明确的要求数据只能逻辑删除,不能物理删除。那什么优势逻辑删除,什么又是物理删除呢?物理删除就是我们之前常用的DELETE、TRANCATE、DROP语句删除数据,不管你用哪种方式,都是将数据从硬盘上抹除, 这样数据表的体积就变小了,数据的读写性能就提上去了。有个共识InnoDB引擎的数据表记录一旦超过2000万,它的读写性能就很差,我们用物理删除能缩小表原创 2020-06-04 14:58:19 · 3146 阅读 · 0 评论 -
谈谈订单号和流水号的关系
订单号和流水号是不同的。首先订单号是订单唯一的编号,而且电商平台的各种子系统也是根据订单来统计业务完成的情况,订单编号经常用来被查询,所以数据类型必须是数字,而且是全局唯一,那肯定就得主键字段了。然后流水号是打印在一般是打印在购物单据上面的,里面一般包含了订单的相关信息,方便人员阅读,比如说有的工作人员看一眼单子就知道是线上还是线下,在哪家零售店买的,或者哪家仓库给你发的货,因为流水号是一个很长的字符串,所以注定合格字段不适合用来当主键,我们设计订单表时候是那订单号作为主键的,流水号只不过是个普通的字段原创 2020-06-04 10:27:15 · 12711 阅读 · 1 评论 -
如何在线修改表结构
在线的修改表结构一定要慎重随意的添加和删除字段,都会造成严重的事故。并且在修改表之前,必须要对数据表做备份,如果每天都做增量备份的话,备份一次数据也花不了太长的时间。常规的备份是先对业务停机,然后再维护数据库和系统代码,这种彻底停掉业务的方式是安全的, 稳妥的,通常会在后半夜去做,比如说淘宝在凌晨2点去做维护系统,12306每晚也会做对系统的维护,到第二天早上才能购票。要是不影响正常业务的表结构变更还是可以在线去做的,比如说数据太多,int类型的主键不太够用了需要换成bigint类型的主键,再或者原来原创 2020-06-03 18:01:06 · 1317 阅读 · 0 评论 -
表的主键用数字还是UUID
什么是UUIDUUID 是通用识别码的缩写,其目的是让分布式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定UUID一共有三段数据组成,第一段是时间信息、第二段时钟信息、第三段唯一机器识别号,因为时间信息、时钟信息是变化的,因此每台机器生成的UUID也是在不断变化的。MySQL数据库里也自带了UUID函数,可以方便的为我们生成UUID字符串,那么下面我们给大家演示下select UUID();c50ddfd5-a56f-11ea-b8fe-02504100000原创 2020-06-03 16:50:43 · 506 阅读 · 0 评论