数据库
文章平均质量分 68
秋风不问归客
这个作者很懒,什么都没留下…
展开
-
MySQL也有潜规则 – Select 语句不加 Order By 如何排序?
今天遇到一个问题,有一个 Select 语句没有加 “Order By”,返回的数据是不确定的。这种问题碰到不止几次了。追根寻底, Select 语句如果不加 “Order By”,MySQL会怎么排序呢?在网上搜了一下,在MySQL论坛发现了这篇文章。http://forums.mysql.com/read.PHP?21,239471,239688#msg-239688简单翻译一下* 不能依赖 MySQL 的默认排序* 如果你想排序,总是加上 Order By* GROUP BY.原创 2021-01-27 18:27:33 · 772 阅读 · 0 评论 -
数据库中count(字段) ,count(主键 id) ,count(1)和count(*)的区别
注:下面的讨论和结论是基于 InnoDB 引擎的。首先要弄清楚 count() 的语义。count() 是一个聚合函数,对于返回的结果集,一行行地判断,如果 count 函数的参数不是 NULL,累计值就加 1,否则不加。最后返回累计值。所以,count(*)、count(1)和count(主键 id) 都表示返回满足条件的结果集的总行数;而 count(字段),则表示返回满足条件的数据行里面,参数“字段”不为 NULL 的总个数。至于分析性能差别的时候,记住这么几个原则:server 层要原创 2020-10-14 11:45:10 · 1363 阅读 · 0 评论 -
MySQL数据的备份和恢复
1. 数据备份的重要性在生产环境中,数据的安全性至关重要 任何数据的丢失都可能产生严重的后果 造成数据丢失的原因 程序错误 人为操作错误 运算错误 磁盘故障 灾难(如火灾、地震)和盗窃2. 数据库备份的分类物理备份:对数据库操作系统的物理文件(如数据文件、日志文件等)的备份 物理备份方法 冷备份(脱机备份):是在关闭数据库的时候进行的 热备份(联机备份):数据库处于运行状态,依赖于数据库的日志文件 温备份:数据库锁定表格(不可写入但可读)的状态下进行备份操作 逻辑备份:对数原创 2020-09-17 14:28:57 · 123 阅读 · 0 评论 -
给出每个员工每年薪水涨幅超过5000的员工编号emp_no、薪水变更开始日期from_date以及薪水涨幅值salary_growth,并按照salary_growth逆序排列。 提示:在sqlite
问题描述:给出每个员工每年薪水涨幅超过5000的员工编号emp_no、薪水变更开始日期from_date以及薪水涨幅值salary_growth,并按照salary_growth逆序排列。提示:在sqlite中获取datetime时间对应的年份函数为strftime('%Y', to_date)(数据保证每个员工的每条薪水记录to_date-from_date=1年,而且同一员工的下一条薪水记录from_data=上一条薪水记录的to_data)CREATE TABLE `salaries`原创 2020-09-12 09:34:14 · 292 阅读 · 0 评论 -
Redis面试整理最新版
redis和memcached什么区别?为什么高并发下有时单线程的redis比多线程的memcached效率要高?区别:1.mc可缓存图片和视频。rd支持除k/v更多的数据结构;2.rd可以使用虚拟内存,rd可持久化和aof灾难恢复,rd通过主从支持数据备份;3.rd可以做消息队列。原因:mc多线程模型引入了缓存一致性和锁,加锁带来了性能损耗。redis主从复制如何实现的?redis的集群模式如何实现?redis的key是如何寻址的?主从复制实现:主节点将自己内存中的数据做.原创 2020-08-06 15:08:52 · 118 阅读 · 0 评论 -
Mysql中key 、primary key 、unique key 与index区别
索引被用来快速找出在一个列上用一特定值的行。没有索引,MySQL不得不首先以第一条记录开始并然后读完整个表直到它找出相关的行。表越大,花费时间越多。如果表对于查询的列有一个索引,MySQL能快速到达一个位置去搜寻到数据文件的中间,没有必要考虑所有数据。如果一个表有1000行,这比顺序读取至少快100倍。注意你需要存取几乎所有1000行,它较快的顺序读取,因为此时我们避免磁盘寻道。所有的MySQL索引(PRIMARY、UNIQUE和INDEX)在B树中存储。字符串是自动地压缩前缀和结尾空间。索引用.原创 2020-07-28 18:25:05 · 374 阅读 · 0 评论 -
MVCC 隔离级别
1. 什么是MVCC?多版本并发控制(Multi-Version Concurrency Control, MVCC),顾名思义,在并发访问的时候,数据存在版本的概念,可以有效地提升数据库并发能力,常见的数据库如MySQL、MS SQL Server、IBM DB2、Hbase、MongoDB等等都在使用。简单讲,如果没有MVCC,当想要读取的数据被其他事务用排它锁锁住时,只能互斥等待;而这时MVCC可以通过提供历史版本从而实现读取被锁的数据(的历史版本),避免了互斥等待。在 MySQL中,多版本原创 2020-07-11 09:44:00 · 919 阅读 · 1 评论 -
电商网站的秒杀是如何实现的
秒杀与其他业务最大的区别在于:秒杀的瞬间,(1)系统的并发量会非常的大(2)并发量大的同时,网络的流量也会瞬间变大。 关于(2),最常用的办法就是做页面静态化,也就是常说的前后端分离,把静态页面直接缓存到用户的浏览器端,所需要的数据从服务端接口动态获取。这样会大大节省网络的流量,再加上CDN,一般不会有大问题。 关于(1),这里的核心问题就在于如何在大并发的情况下能保证DB能扛得住压力,因为大并发...原创 2018-09-25 13:10:05 · 1428 阅读 · 1 评论 -
数据库优化
1、根据服务层面 配置mysql性能优化参数; 2、从系统层面增强mysql的性能:优化数据表结构 ① 将字段较多的表分解成多个表 对于字段较多的表,如果有些字段的使用频率很低,可以将这些字段分离出来形成新表。因为当一个表的数据量很大时,会由于存在使用频率低的字段而使查询速度变慢。 ② 增加中间表 对于经常需要联合查询的表,可以建立中间表以提高查询效率。通过建立中间表,把需要经常联合查询的数据...原创 2018-09-12 14:50:25 · 156 阅读 · 0 评论 -
redis面试总结
1.什么是redis? Redis 是一个基于内存的高性能key-value数据库。 2.Reids的特点 Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性...原创 2018-09-06 19:05:19 · 141 阅读 · 0 评论 -
redis 数据类型详解 以及 redis适用场景场合
1. MySql+Memcached架构的问题 实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业务数据量的不断增加,和访问量的持续增长,我们遇到了很多问题: 1.MySQL需要不断进行拆库拆表,Memcached也需不断跟着扩容,扩容和维护工作占据大量开发时间。 2.Memcach...原创 2018-09-09 14:24:56 · 162 阅读 · 0 评论