
MySQL
文章平均质量分 89
Darren i
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
MySQL 对于千万级的大表要怎么优化?
很多人第一反应是各种切分;我给的顺序是:第一 优化你的sql和索引;第二 加缓存,memcached,redis;第三 以上都做了后,还是慢,就做主从复制或主主复制,读写分离,可以在应用层做,效率高,也可以用三方工具,第三方工具推荐360的atlas,其它的要么效率不高,要么没人维护;第四 如果以上都做了还是慢,不要想着去做切分,mysql自带分区表,先试试这个,对你的应用是透明的,无需更改代码,但是sql语句是需要针对分区表做优化的,sql条件中要带上分区条件的列,从而使查询定位到少量的分区上,转载 2021-07-10 12:16:49 · 277 阅读 · 0 评论 -
Innodb中的事务隔离级别和锁的关系
前言我们都知道事务的几种性质,数据库为了维护这些性质,尤其是一致性和隔离性,一般使用加锁这种方式。同时数据库又是个高并发的应用,同一时间会有大量的并发访问,如果加锁过度,会极大的降低并发处理能力。所以对于加锁的处理,可以说就是数据库对于事务处理的精髓所在。这里通过分析MySQL中InnoDB引擎的加锁机制,来抛砖引玉,让读者更好的理解,在事务处理中数据库到底做了什么。一次封锁or两段锁?因为有大量的并发访问,为了预防死锁,一般应用中推荐使用一次封锁法,就是在方法的开始阶段,已经预先知道会用到哪些数据,转载 2021-07-01 12:06:18 · 268 阅读 · 0 评论 -
MySQL优化(四):count()
count()不同写法的区别COUNT(字段名):返回SELECT语句检索的行中值不为NULL的行数COUNT(1):表示的是直接查询符合条件的数据库表的行数(会包含值为NULL的行数)。其中1指的是表中的第一个字段,如有表 table(id, column1),则1指 id。COUNT(*):表示的是直接查询符合条件的数据库表的行数(会包含值为NULL的行数),其中* 指所有所有字段,并且是SQL92定义的标准统计行数的语法,因为是标准语法,所以MySQL数据库进行过很多优化,推荐使用。COUNT原创 2021-06-23 15:04:36 · 1025 阅读 · 1 评论 -
MySQL日志:binlog、事务日志(redo、undo)
事务的隔离性是通过锁实现,而事务的原子性、一致性和持久性则是通过日志实现。Mysql的日志可以分为:binlog:server层实现事务日志:包括redo log、undo log,引擎层(innodb)实现redo logredo log是用于备份事务中操作得到的最新数据的地方redo log通常是物理日志,记录的是数据页的物理修改,而不是记录某一行或某几行的修改,它用来恢复提交后的物理数据页(恢复数据页,且只能恢复到最后一次提交的位置)。在innoDB的存储引擎中,事务日志通过重做日志(原创 2021-06-17 14:23:01 · 918 阅读 · 0 评论 -
Mysql优化(三):优化order by
MySQL中的两种排序方式.通过有序索引顺序扫描直接返回有序数据因为索引的结构是B+树,索引中的数据是按照一定顺序进行排列的,所以在排序查询中如果能利用索引,就能避免额外的排序操作。EXPLAIN分析查询时,Extra显示为Using index。.Filesort排序即对返回的数据进行排序所有不是通过索引直接返回排序结果的操作都是Filesort排序,也就是说进行了额外的排序操作。EXPLAIN分析查询时,Extra显示为Using filesort。无法使用索引排序的情况首先要注意:M原创 2021-05-29 23:25:02 · 1272 阅读 · 0 评论 -
MySQL、MongoDB、列数据库的区别及应用场景
目录什么是行存储和列存储?什么是MongoDB(NoSQL)?OLTP和OLAP什么是CAP定理?使用场景行存储的适用场景:列存储的适用场景:MongoDB相对于MySQL的优点更适用MySQL的场景更适用MongoDB的场景个人理解扩展参考什么是行存储和列存储?行存储:传统的关系型数据库,如 Oracle、DB2、MySQL、SQL SERVER 等采用行式存储法(Row-based,基于行),在基于行式存储的数据库中, 数据是按照行数据为基础逻辑存储单元进行存储的,一行中的数据在存储介质中以连续存原创 2020-12-16 23:21:33 · 4989 阅读 · 0 评论 -
MySQL优化(二):索引的类型、匹配原则、创建原则
索引的优缺点常见的索引结构有: B 树, B+树和 Hash。优点:加快数据的检索速度缺点:创建索引和维护索引需要耗费许多时间:当对表中的数据进行增删改的时候,如果数据有索引,那么索引也需要动态的修改,会降低 SQL 执行效率。占用物理存储空间 :索引需要使用物理文件存储,也会耗费一定空间。索引类型聚簇索引(主键索引)聚簇索引即索引结构和数据一起存放的索引,结构为B+树。InnoDB中,表数据文件本身就是按B+Tree组织的一个索引结构,聚簇索引就是按照每张表的主键构造一颗B原创 2021-02-01 15:22:26 · 2099 阅读 · 0 评论 -
MySQL优化(一):表结构优化
表优化数据类型的选择避免列的值为NULL查询包含值为NULL的列,会使索引、索引统计和值比较更加复杂,如果计划在列上建索引,就应该尽量避免索引列含有NULL值在保证足够的范围内,选择最小、最简单的数据类型更小的数据类型占用更少的磁盘、内存和CPU缓存、处理也更快VARCHAR和CHARVARCHAR需要适用1或2两个额外字节记录字符串长度,适用于:字符串列最大长度比平均长度大很多列更新少,所以不用担心碎片问题使用了UTF-8等复杂字符集,每个字符用不同字节数存储C原创 2020-12-21 23:10:53 · 2724 阅读 · 0 评论