我的编程空间,编程开发者的网络收藏夹
学习永远不晚

数据库知识笔记

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

数据库知识笔记

1、强制使用decimal存储小数,不使用float、double,防止精度损失,如果存储的数据范围超过 decimal 的范围,建议将数据拆成整数和小数分开存储。这也是阿里的强制开发规范。

2、高效分页

limit m,n其实质就是先执行limit m+n,然后从第m行取n行,这样当limit翻页越往后翻m越大,性能越低。比如

select * from A limit 100000,10,这种sql语句的性能是很差的,建议改成下面的版本:

selec id,name,age from A where id >=(select id from A limit 100000,1) limit 10

3、InnoDB的行锁加上死锁检测机制会导致数据库CPU短时间内被占满,导致整库几乎无法响应。 

4、对数据分组的总结:

1 分组函数只能出现在选择列表、having、order by子句中(不能出现在where中) 。

2 如果在select语句中同时包含有where,group by, having, order by 那么它们的顺序是where,group by, having, order by 。

3 在选择列中如果有列、表达式和分组函数,那么这些列和表达式必须有一个出现在group by 子句中,否则就会出错。

如SELECT deptno, AVG(sal), MAX(sal) FROM emp GROUP by deptno HAVING AVG(sal) < 2000;

这里deptno就一定要出现在group by 中。

5、sql排序默认是升序(从小到大),直接order by,降序是desc。

6、子查询比关联查询效率高。

MySQL:

mysql的innodb的底层存储模型是B+树,它使用主键作为聚簇索引,使用插入的数据作为叶子节点,通过主键可以很快找到叶子节点,从而快速获取记录。主键最好要自增。因为自增主键可以让插入的数据按主键顺序插入到底层的B+树的叶子节点中,由于是按序的,这种插入几乎不需要去移动已有的其它数据,所以插入效率很高。如果主键不是自增的,那么每次主键的值近似随机,这时候就有可能需要移动大量数据来保证B+树的特性,增加了不必要的开销。

对于mysql的join,它用的是Nested Loop Join算法,也就是通过前一个表查询的结果集去后一个表中查询,比如前一个表的结果集是100条数据,后一个表有10W数据,那么就需要在100*10W的数据集合中去过滤得到最终的结果集。因此,尽量用小结果集的表去和大表做join,同时在join的字段上建立索引,如果建不了索引,就需要设置足够大的join buffer size

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

数据库知识笔记

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

初识Oracle数据库基础笔记

初识Oracle数据库基础知识点笔记 Oracle 数据库Oracle → 甲骨文Oracle数据库是一种关系型数据库,由行和列组成数据:文字、图片、视频DB(DataBase) 数据库: 用于存储数据的仓库数据库存储数据的最小单位是表 Table,遵循
初识Oracle数据库基础笔记
2021-06-30

数据库笔记

数据库:   DDl:     创建语句     create,alter,drop等   DML:     更新数据 增删改     insert,delete,updat
数据库笔记
2017-12-31

python3学习知识点笔记

class Class_name(object): # 声明类Class_name,继承自objectclass Class_name: #不显示继承自object,创建类Class_nameclass Fruit: #创建水果类     
2023-01-31

Redis学习笔记:基础知识

一、NoSQL和关系型数据库区别    NoSQL非关系型数据库:Redis、MongoDB、HBase等,基于Key-Value存储,采用命令操作。    关系型数据库:Oracle、MySQL、DB2、SQL Server等,基于表结构存储,采用SQL操作
Redis学习笔记:基础知识
2020-08-16

数据库操作函数笔记

2020-02-05mysqli扩展 phpl连接Mysql    mysqli_connect($servername,$username,$password,$database,$port);    //参数1:连接的主机  参数2:数据库登录账号  参数
数据库操作函数笔记
2018-10-26

数据库自学笔记(2)-

1.HAVING和WHERE:WHERE 和 HAVING 的作用对象不一样。WHERE作用于基本表或视图,挑出满足条件的元组。HAVING作用于组(group),一般配合GROUP BY 使用。 2.ANY 和 ALL:all 是将后面的内容看成一个整体,如
数据库自学笔记(2)-
2014-08-26

数据库个人笔记(2) -

**表的创建和操作**- 界面式操作表 > 创建表:>第一步:打开数据库,在‘对象资源管理器’中展开‘数据库’,右击 ‘pxscj’ 数据库菜单下的 ‘表’ 选项,在弹出的快捷菜单中选择 ‘新建表’ 菜单项,如图>  >第二步:在 “表设计器” 的 窗口中,
数据库个人笔记(2) -
2016-06-19

MySQL数据库基础笔记

数据库 数据库就是存储和管理数据的仓库,用户可以对数据库中的数据进行增删改查等操作。数据库的分类关系型数据库(Oracle、MySQL、SQLite等)非关系型数据库(Redis、MongoDB等)MySQL简介 MySQL是一个关系型数据库,由MySQLAB
MySQL数据库基础笔记
2019-07-29

数据库自学笔记(1)-

最近在自学看 数据库系统概论 这本书,总结一下遇到的问题。1.广义笛卡尔积(Extende cartesian product):属于 关系代数 里面的 传统的集合运算。其他的为union,except,intersection. 详情不提了,举个例子就是:c
数据库自学笔记(1)-
2021-02-01

数据库知识扫盲,数据库索引

1、存储引擎早期存储引擎都是把数据库相关数据固化到磁盘的,在并发上每张表都是表锁,后期的存储引擎(例如innodb,in-memory等)大多都是元数据在磁盘上,索引数据在内存中,在并发上每张表都是行锁2、磁盘型数据库索引数据库如一本词典,存储很多数据,但要快
数据库知识扫盲,数据库索引
2016-02-02

Vuex的使用及知识点笔记

这篇文章主要介绍了Vuex的使用及知识点笔记,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2022-12-08

编程热搜

目录