数据库
文章平均质量分 71
风和日丽 随波逐流
这个作者很懒,什么都没留下…
展开
-
mysql 分区 分表 分库分表
把一张表的数据分成N多个区块,这些区块可以在同一个磁盘上,也可以在不同的磁盘上mysql数据库中的数据是以文件的形势存在磁盘上的,默认放在/mysql/data下面(可以通过my.ini中的datadir来查看),一张表主要对应着两个个文件(innodb引擎为例),一个是frm存放表结构的,一个是ibd数据和索引文件。如果一张表的数据量太大的话,那么myd,ibd就会变的很大,查找数据就会变的很慢,这个时候我们可以利用mysql的分区功能,在物理上将这一张表对应的三个文件,分割成许多个小块,这样呢,我们查找原创 2022-07-06 18:15:18 · 781 阅读 · 0 评论 -
数据库的索引
组合索引有最左原则:关于最左原则有太多话要说了,网上大部分的说法都很旧,5.7之后的有了索引下推,导致很多情况下索引都会生效。创建组合索引 index(a,b,c)where a=3 只使⽤了awhere a=3 and b=5 使⽤了a,bwhere a=3 and b=5 and c=4 使⽤了a,b,cwhere a=3 and c=5 and b=4 使⽤了a,b,c (可能是sql执行时自动优化,把B和C条件位置对调了)where a=3 and c=4原创 2022-07-05 09:38:24 · 170 阅读 · 0 评论 -
交换两个数字(字符) 学习随笔
1.通过一个中间容器temp交换 2.+ - -3.^ ^ ^如果是两个字符,可以将字符转化成字符的ASCII码 然后转成字符交换两个值(仅限int和char(1))因为业务需要将用户表中的sex转换(前提只存了两种 男,女)UPDATE user set sex = 0 ^ 1 ^ sex或者 UPDATE user SET sex = CASE sex WHEN 1 THEN 0 ELSE 1 END;需要设置 sql安全模原创 2022-06-28 17:09:16 · 313 阅读 · 0 评论 -
数据库的锁
为什么:当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。是什么:在计算机科学中,锁是在执行多线程时用于强行限制资源访问的同步机制,即用于在并发控制中保证对互斥要求的满足。加锁是实现数据库并发控制的一个非常重要的技术。当事务在对某个数据对象进行操作前,先向系统发出请求,对其加锁。加锁后事务就对该数据对象有了一定的控制,在该事务释放锁之前,其他的事务不能对此数据对象进行更新操作。一提起锁肯定是原创 2021-05-21 15:11:10 · 287 阅读 · 0 评论 -
浅谈数据库设计
数据库设计是每个程序员将来发展都要做的事情,那么我们话不多说先怼三范式。三范式背景提出是数据库设计三范式的时间是上个世纪70年代,科技和现在比差了50年,内存也很紧缺,所以要提出一系列规范来限制数据库,使数据冗余尽量小。目的规范化目的是使结构更合理,消除存储异常,使数据冗余尽量小。便于插入、删除和更新。遵从概念单一化“一事一地”原则,即一个关系模式描述一个实体或实体间的一种联系。规范的实质就是概念的单一化。一个关系模式接着分解可以得到不同关系模式集合,也就是说分解方法不是惟一的。原创 2021-04-19 13:37:50 · 228 阅读 · 1 评论