数据库
数据库
XuQingHui_JavaBoy
这个作者很懒,什么都没留下…
展开
-
MySQL索引失效的案例
1.针对联合索引查询的时候要遵循最左前缀原则,查询条件中带头字段一定要写上,中间字段不能断,要连续,例如:2.不要在索引列上做任何操作(计算、函数、(自动或手动)类型转换),例如下面会导致索引失效:3.存储引擎不能使用索引中范围条件右边的列,这样会导致范围右边列索引用不上,例如:4.减少select * 的使用,尽量使用覆盖索引(只访问索引的查询索引列和查询列一致),例如:5.mysql在使用不等于(!=或<>) 的时候无法使用索引,会导致全表扫描,例如:6.mysql中过滤原创 2021-04-04 19:01:44 · 171 阅读 · 0 评论 -
面试题目-表中实现分组并在每组内排序
题目:一个表中有每年每月的记录数据,找出每年中数据最大的对应的月份1.mysql数据库下实现:a).表结构和数据情况如下:b).查询实现步骤:先根据年份分组找出每年中数据最大对应的年份和数量select year,max(num) as num from t_order group by year;然后根据上面结果来一个右连接查询找出相关的记录,这里使用右连接查询减少了关联查询的次数select t1.year,t1.month,t1.num from t_order t1 rig原创 2021-03-28 18:37:31 · 162 阅读 · 0 评论 -
Oracle数据库下sys和system用户如何修改密码
修改步骤:(1)通过在cmd下 输入命令: sqlplus /nolog ,进入oracle控制台(2)接着并输入connect / as sysdba使用conn连接sysdba登录,当然前面两步也可以直接在cmd下输入sqlplus直接连接sysdba登录(3)连接成功后,输入“select username from dba_users”查看用户列表(4)若修改某一个用户密码, 修改用户口令 格式为:alter user 用户名 identified by 新密码;以 sys 为例,密码修改原创 2021-02-19 16:29:03 · 1477 阅读 · 1 评论 -
分布式下数据库分库分表之后全局主键id生成的几种方式
1.UUID:不适合作为主键,因为太长了,并且无序不可读,查询效率低。比较适合用于生成唯一的名字的标示比如文件的名字。2.数据库自增 id : 两台数据库分别设置不同步长,生成不重复ID的策略来实现高可用。这种方式生成的 id 有序,但是需要独立部署数据库实例,成本高,还会有性能瓶颈。3.利用 redis 生成 id : 性能比较好,灵活方便,不依赖于数据库。但是,引入了新的组件造成系统更加复杂,可用性降低,编码更加复杂,增加了系统成本。4.Twitter的snowflake算法 :Github 地址原创 2020-11-01 17:52:48 · 302 阅读 · 0 评论 -
MySQL中的主从复制
1.主从复制的原理:2.大概顺序:3.主机修改配置文件:4.从机修改配置文件:5.主机授权:6.从机配置:7.最后判断是否成功:原创 2020-11-01 17:16:35 · 62 阅读 · 0 评论 -
MySQL中如何锁定一行
1.先关闭mysql的自动提交 SET autocommit = 0;2.在执行begin;开启事务3.然后执行语句锁定一行select * from test_innodb_lock where a=8 for update;4.最后执行commit; 提交后就解锁5.其他操作这一行的将会被阻塞,直到提交后释放锁...原创 2020-11-01 16:39:23 · 1509 阅读 · 0 评论 -
MySQL中的间隙锁
1.定义:当我们用范围条件而不是相等条件检索数据,并请求共享或排他锁时,InnoDB会给符合条件的已有数据记录的索引项加锁;对于键值在条件范围内但并不存在的记录,叫做“间隙(GAP)”。2.案例:3.危害:简单来说,session1使用了范围条件检索数据,比如id范围在3到10,那么即便id为6的数据不存在,它这不存在的一行也会被锁。如果另一个session想要插入id为6的数据的时候,就会阻塞。...原创 2020-11-01 16:24:48 · 96 阅读 · 0 评论 -
MySQL中的表读写锁案例
1.创建表:2.如何给增加表锁:3.如何释放表锁:4-1.案例模拟(读锁):总结:给表加读锁时,对应的session给表加读锁之后,可以查询该表的数据,但是不能更新该表的数据,也不能查询其他没有加锁的表,其他的session能查询加锁表和查询和更新其他的未锁定的表的数据,但更新加锁表的数据操作会阻塞,直到对应的表解锁才能继续执行。4-2.案例模拟(写锁):总结:给表加写锁时,对应的session给表加读锁之后,可以查询和更新该表的数据,但是不能查询其他的表,其他的sess原创 2020-11-01 16:12:01 · 469 阅读 · 0 评论 -
MySQL索引失效的原因总结
MySQL索引失效的原因总结使用索引时数量和顺序应该和创建索引时是一致的,保证全值匹配;最佳的左前缀法则;不要在索引列做任何操作(计算,函数,(自动和手动)类型转换),会导致索引失效;存储引擎不能使用索引中范围条件右边的列;尽量使用覆盖索引(只访问索引的查询(索引列和查询列一致)),减少使用select *;mysql在使用不等于(!=或者<>)的时候无法使用索引会导致全表扫描;is null,is not null也无法使用索引;like以通配符开头(’%abc…’)索引失效原创 2020-10-31 16:30:28 · 171 阅读 · 0 评论