
mysql
小白写程序
这个作者很懒,什么都没留下…
展开
-
MySQL优化 -- 系统配置优化(四)
一、操作系统配置优化数据库是基于操作系统的,目前大多数MySQL是安装在Linux系统上,所以对于操作系统的一些参数配置也会影响MySQL的性能。网络方面的配置,要修改/etc/sysctl.conf文件:增加tcp支持的队列数:net.ipv4.tcp_max_syn_backlog = 65535减少断开连接时,资源回收:net.ipv4.tcp_max_tw_buckets = ...原创 2020-04-17 10:34:05 · 219 阅读 · 0 评论 -
MySQL优化 -- 数据库结构优化(三)
一、选择合适的数据类型1、使用可以存下数据的最小的数据类型。使用int来存储日期时间,利用from_unixtime(),unix_timestamp()两个函数来对日期格式进行转换:insert into test(timestr) values(unix_timestamp('2020-02-21 15:34:33'));select from_unixtime(timestr) fr...原创 2020-04-16 16:16:50 · 217 阅读 · 0 评论 -
MySQL优化 -- SQL及索引优化(二)
一、Count()和Max()的优化方法查找最后的支付时间:对支付时间建立索引:create index idx_paydate on payment(payment_date);查询:select max(payment_date) from payment;在一条SQL中同时查出2006年和2007年电影的数量 - 优化count()函数:对count函数使用的列做处理:se...原创 2020-04-16 10:14:46 · 249 阅读 · 0 评论 -
MySQL优化 -- SQL及索引优化(一)
一、如何发现有问题的SQL?使用MySQL慢查询日志对有效率问题的SQL进行监控:查看是否有开启慢查询日志记录:show variables like 'slow_query_log';设置没用到索引的查询都记录:set global log_queries_not_using_indexes=on;开启慢查询日志记录:set global slow_query_log=on;查看...原创 2020-04-05 22:05:18 · 204 阅读 · 0 评论 -
MySQL数据库优化简介
一、数据库优化的目的避免出现页面访问错误:由于数据库连接timeout产生页面5xx错误。由于慢查询造成页面无法加载。由于阻塞造成数据无法提交。增加数据库的稳定性:很多数据库都是由于低效的查询引起的。优化用户体验:流畅页面的访问速度。良好的网站功能体验。二、数据库优化的方面有哪些?...原创 2020-04-04 22:19:15 · 155 阅读 · 0 评论 -
MySQL 之 MVCC介绍
简介MVCC (multiversion concurrency control),多版本并发控制,主要是通过在每一行记录中增加三个字段,与 undo log 中相关记录配合使用,同时加上可见性算法,使得各个事务可以在不加锁的情况下能够同时地读取到某行记录上的准确值(这个值对不同的事务而言可能是不同的)。使用 MVCC,在不加锁的情况下也能读取到准确的数据,大大提高了并发效率。MVCC 更新操...转载 2020-02-26 11:23:46 · 917 阅读 · 1 评论 -
MySQL性能优化 -- 服务器配置优化
常用查看性能参数的方法show variables:查看服务器一些静态的参数,如缓冲区大小,字符集,数据文件名称等信息。show rariables:查看的是MySQL启动之前已经配置号的一些系统静态参数。show status:查看服务器运行中的状态信息,如当前连接数,锁等状态信息。1、key_buffer_size的设置:该参数用来设置索引块缓存的大小,只使用于MyISAM存储引擎,...原创 2019-12-29 15:27:09 · 471 阅读 · 0 评论 -
MySQL性能优化 -- SQL语句优化
SQL语句优化对查询优化,应尽量避免全表扫描,首先考虑在where及order by涉及的列上建立索引。尽量避免在where子句对字段进行null值判断,会导致引擎放弃使用索引而进行全表扫描,可以设置默认值为0,来代替null值。select id from t where num=0;尽量避免在where子句使用 != 或 <>或 使用or连接 或 使用in 和 ...原创 2019-12-28 10:18:32 · 184 阅读 · 0 评论 -
查询MySQL数据表中的最后一条记录
mysql:select * from table order by id DESC limit 1使用:查询出表中的最后一条记录,获取他的id,插入一条新记录时,id在此基础上加1.原创 2019-11-27 20:23:12 · 1201 阅读 · 0 评论 -
数据库的分库分表
分库: 一个库一般最多支撑到并发2000,就要扩容了,而且一个健康的单库并发值最好保持在每秒1000左右,不要太大。那么就可以将一个库的数据拆分到多个库中,访问的时候就只访问存取该数据的库就可以了。分表: 把一个表的数据放到多个表中,然后查询就查询一个表。比如按用户id来分表,将一个用户的数据放在其中一个表里,然后操作的时候只对那个表进行操作就好了。这样可以控制每个表的数据在可控的范围内,比如每...转载 2019-10-15 23:39:09 · 1017 阅读 · 0 评论 -
MySQL主从复制的原理
MySQL主从复制涉及到三个线程,一个运行在主节点,其余两个运行在从节点,如图:主节点 log dump 线程:当从节点连接主节点时,主节点会创建一个log dump线程,用于发送bin-log的内容。在读取bin-log中的操作时,此线程会对主节点上的bin-log加锁,当读取完成,甚至在发动给从节点之前,锁会被释放。从节点 I/O线程:当从节点上执行‘ start slave ’ ...原创 2019-10-11 21:58:46 · 139 阅读 · 0 评论 -
什么是B-树和B+树?
一、B树即B-树定义:一个m阶(它的每个节点最多包含m个孩子,m就是B树的阶)的B树具有以下特征:1. 根节点至少含有两个子女。2. 每个中间节点都包含k-1个元素和k个孩子,其中m/2 <= k <=m。3. 每个叶子节点都包含k-1个元素,其中m/2 <= k <= m。4. 所有的叶子节点都位于同一层,叶子节点不包含任何关键信息。5. 每个节点中的元素从小...原创 2019-10-04 15:03:40 · 4465 阅读 · 0 评论 -
深入理解数据库索引结构
1)数据库文件存储的方式:数据库文件存储都是以磁盘文件存储在系统中的,这也是数据库能持久化存储数据的原因。2)从数据库读取数据的原理:从数据库读取数据,先暂且不考虑从缓存中读取数据的情况,那就是从磁盘文件中读取数据的,我们知道从磁盘文件中读取数据是比较耗时的,数据库的select操作的时间,取决于执行磁盘IO的次数,因此尽量减少磁盘IO就可以显著的提升数据的查询速度。3)减少磁盘IO操作的...原创 2019-10-04 15:40:08 · 271 阅读 · 0 评论 -
聚集索引和非聚集索引的区别
聚集索引和非聚集索引的区别:举个最简单的例子,聚集索引就是你查询到叶子节点时,叶子节点存储的就是你想要的数据,直接拿走就可以了。非聚集索引就是叶子节点存储的就是你想要的数据的一个索引,你需要再回表查询多一次才能拿到想要的数据。注意:一个表只能有一个聚集索引,即只能按照一种顺序来排列。没有明确指出,默认是主键。理解:就好比汉语字典的正文编排顺序就是按照字母a-z顺序来排序的,此时的字母就是一...原创 2019-09-22 15:11:23 · 376 阅读 · 0 评论 -
MySQL索引 -- 特别注意
聚簇索引和非聚簇索引的区别:在InnoDB中,索引B+树的叶子节点存储了整行数据的是主键索引,也叫聚簇索引。而叶子节点存储了主键的值是非主键索引,也叫聚簇索引。聚簇索引查询更快,因为叶子节点存的就是要查询的整行数据了,不需要再去查询一次。非聚簇索引存的是主键的值,拿到之后还要再通过该值去查询一次,叫做回表。问:非聚簇索引一定会查询多次吗?答:可以通过覆盖索引达到只查询一次。覆盖索引...原创 2019-09-17 23:57:58 · 305 阅读 · 0 评论 -
数据库的巴拉巴拉
主键可以是外键,分为主表和从表。同时表的主键可以是多个字段,创建主键会自动创建索引。原创 2019-08-27 15:22:19 · 194 阅读 · 0 评论 -
mysql 的时区问题
使用springboot连接MySQL数据库时,出现了这个问题。原因:因为时区设置的问题,UTC代表的是全球标准时间 ,但是我们使用的时间是北京时区也就是东八区,领先UTC八个小时。解决:spring.datasource.url=jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8&serverTimezone=UTC配...原创 2019-08-18 13:06:23 · 238 阅读 · 0 评论 -
MySQL索引入门
介绍索引就相当于表的目录一样,可以提高我们查询数据的效率,是一种数据结构。常见的MySQL主要有两种结构:Hash索引和B+树索引。使用哪种数据结构跟存储引擎有关,InnoDB引擎默认使用的是B+树。1、索引的选取1、选择小的数据类型:越小的数据类型通常在磁盘,内存和CPU缓存中占用更少的空间,处理速度更快2、选择简单的数据类型:整型数据比字符,处理开销更小,因为字符串的比较更复杂3、...原创 2019-08-11 14:58:33 · 121 阅读 · 0 评论 -
mysql中的unique key和null之间的关系
在mysql 中,唯一约束unique key是为了防止数据重复而设立的。一个表可以有多个唯一约束,但只能有一个主键。神奇的是,唯一约束竟然可以插入null值,而且可以插入多个null值,这一点令我难以理解。所以查阅了一下,发现解释很多种,但比较信服的是这个说法:主键和唯一键约束是通过参考索引实施的,如果插入的值均为NULL,则根据索引的原理,全NULL值不被记录在索引上,所以插入全NULL值...原创 2019-08-19 23:26:32 · 6914 阅读 · 0 评论