
MySQL
文章平均质量分 81
MySQL学习总结
ZZZhonngger
一只有女朋友的程序猿
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
MySQL的数据是存在哪的
MySQL的数据是存在哪的?我们都知道,MySQL需要支持持久化,它把数据存储在磁盘中,在操作系统中会把管理磁盘的设备叫做文件系统,对于我们研发而言,我们大多数只会关心MySQL的索引、SQL性能优化,而对于数据是怎么存储、存在哪里这类问题就像是一个黑盒。接下来,就来通过这篇文章来简要了解下吧~1 数据存储在文件系统我们常用的存储引擎InnoDB都是把表存储在文件系统上的(即磁盘),当需要读取数据时,InnoDB会从文件系统中把数据读取出来返回给我们;当需要写入数据时,InnoDB又会把数据写回到文件原创 2022-01-22 11:32:26 · 19502 阅读 · 0 评论 -
万字长文带你了解MySQL中的各种文件
参考文献《MySQL技术内幕 InnoDB存储引擎 第二版》MySQL中有各类文件,这些文件主要有:参数文件 :告知MySQL实例启动时在哪里可以找到数据库文件,并指定初始化参数等。日志文件 :用来记录MySQL实例对某些条件做出响应时写入的文件,例如错误日志、二进制日志、慢查询日志等。Socket文件 :当用UNIX域套接字方式进行连接时需要的文件。pid文件 : MySQL实例等进程ID文件。MySQL表结构文件:用来存放MySQL表结构定义文件。存储引擎文件:MySQL表的存储引擎.原创 2021-06-26 12:01:20 · 371 阅读 · 0 评论 -
MySQL查询性能优化(下)
参考文献《高性能MySQL(第三版)》上一期主要对MySQL的查询过程进行了简要的梳理,理解了一条SQL执行的过程需要经过MySQL的各种组件,本期我们将重点探索下MySQL查询性能优化的方法。5 MySQL查询优化器的局限MySQL查询优化器对于以下几种类型的查询是不适用的。5.1 关联子查询where条件中包含in子句的子查询语句。例如:select * from a where a.id in (select b.id from b where b.name = 'zhongger'.原创 2021-06-03 18:53:15 · 210 阅读 · 0 评论 -
MySQL查询性能优化(上)
参考文献《高性能MySQL(第三版)》上一期我们深入理解了MySQL的索引,有了MySQL索引可以一定程度上提高MySQL的查询速度。这一期我们来学习下MySQL查询性能优化的一般方法。1 为什么查询速度会慢?其实很简单,在一个应用程序中,我们要查询一些数据,通常是从客户端出发,请求经过网络传输到达服务端后,在服务端进行解析,然后把查询命令发送给MySQL,MySQL经过一系列解析、优化等,最终将结果查询出来,返回给客户端,最终给到我们用户。在这一系列操作里,由于网络时延、CPU、内存、锁竞争、.原创 2021-05-31 13:37:22 · 353 阅读 · 0 评论 -
万字长文带你搞懂MySQL索引
参考文献《高性能MySQL(第三版)》之前找实习、参加秋招时准备面试都没有系统地复习过索引,都是零零碎碎地看一下博客和公众号,总结出了一套面试索引相关问题的组合拳,现在有时间静下心来看看书,那就系统地把索引的知识梳理一下吧。1 索引的类型1.1 B-Tree索引一般说到索引数据结构,大部分同学的第一反应就是B+树,其实不然。MySQL中的专业术语是B-Tree,在create table和其他语句中会见到B-Tree这个关键字。虽然很多存储引擎都使用B-Tree索引,但底层真正的数据结构又有所.原创 2021-05-08 18:05:45 · 185 阅读 · 0 评论 -
MySQL优化——Schema与数据类型设计
1. 更优化的数据类型(1)选择可以正确存储数据的最小数据类型。 因为它们占用更少的磁盘、内存和CPU缓冲,且处理时需要的CPU周期也更少。**(2)简单的数据类型。**因为简单数据类型的操作通常需要更少的CPU周期。eg:整型比字符型更好;使用MySQL内建的类型如date、datetime、time等而不是字符串来存储日期和时间;使用整型来存储IP地址而非字符串。(3)尽量避免NULL。通常情况下最好指定列为NOT NULL。因为若查询中包含可以为NULL的列,对于MySQL对可为NULL列使用索原创 2021-05-06 15:31:31 · 191 阅读 · 0 评论 -
MySQL InnoDB的插入缓冲Insert Buffer
MySQL InnoDB关键特性(一) 插入缓冲Insert BufferInsert Buffer是物理页的一个组成部分在InnoDB中,主键是行唯一的标识符,自增主键中行记录的插入顺序是按照主键递增的顺序进行插入的,故插入聚集索引一般是顺序的,不需要磁盘的随机读取。create table t1 ( a int auto_increment, prim原创 2021-04-24 23:12:59 · 239 阅读 · 0 评论 -
重温《MySQL必知必会》学习到的一些关键点(一)
重温《MySQL必知必会》学习到的一些关键点1.谨慎使用select *一般,除非你确实需要表中的每个列,否则最好别使用*通配符。虽然使用通配符可能会使你自己省事,不用明确列出所需列,但检索不需要的列通常会降低检索和应用程序的性能。2.检索不同的行——DISTINCT关键字不能部分使用DISTINCT DISTINCT关键字应用于所有列而不仅是前置它的列。如果给出SELECT DISTINCT vend_id,prod_price,除非指定的两个列都不同,否则所有行都将被检索出来3.限原创 2020-05-18 10:50:20 · 368 阅读 · 0 评论 -
MySQL锁机制
MySQL锁机制2020.3.1学习总结读锁和写锁在MySQL中,按照对数据操作的类别(读/写)可以把锁分为读锁和写锁。读锁(共享锁):针对同一份数据,多个读操作可以同时进行而不会互相影响写锁(排他锁):当前写操作没有完成前,它会阻断其他写锁和读锁表锁和行锁1.表锁1.1表锁(偏读)的特点:表锁偏向于MyISAM存储引擎,开销小,加锁快无死锁锁定粒度大(锁的是整个表)发生...原创 2020-03-03 16:09:55 · 204 阅读 · 0 评论 -
MySQL索引面试题六连击
1、面试真题(1)MySQ索引的原理和数据结构能介绍一下吗?(2)b+树和b-树有什么区别?(3)MySQL聚簇索引和非聚簇索引的区别是什么?(4)他们分别是如何存储的?(5)使用MySQL索引都有哪些原则?(6)MySQL复合索引如何使用?3、面试题剖析3.1 索引的数据结构是什么其实就是让你聊聊mysql的索引底层是什么数据结构实现的,弄不好现场还会让你画一画索引的数据结构,...原创 2020-02-21 09:07:50 · 208 阅读 · 0 评论 -
MySQL存储过程——批量插入数据
MySQL存储过程——批量插入数据1.现在建立两个表,并定义两个函数:dept部门表:emp员工表:定义随机生成字符串的函数DELIMITER $$CREATE FUNCTION rand_string(n INT) RETURNS VARCHAR(255)BEGIN DECLARE chars_str VARCHAR(100) DEFAULT 'abcdefghijklmn...原创 2020-02-19 22:01:01 · 593 阅读 · 0 评论 -
MySQL索引优化(为排序)
MySQL优化一般面试MySQL怎么做优化的答题思路:1.先至少让系统跑一天,看看系统的慢SQL情况2.开启慢查询日志,设置阙值,比如超过5秒的就是慢SQL,并将它抓取出来3.explain+慢SQL 进行分析4.show profile查询SQL在MySQL服务器里面的执行细节和生命周期情况5.SQL数据库服务器的参数调优一、优化原则:小表驱动大表,即小的数据集驱动大的数据集。当...原创 2020-02-18 11:39:30 · 319 阅读 · 0 评论 -
MySQL索引面试题分析
MySQL索引面试题分析话不多说,先建立一个表testTable,其中id为自增主键在c1,c2,c3,c4上建立符合索引索引CREATE INDEX idx_testTable_c1234 ON testTable(c1,c2,c3,c4);现在的题目是:根据以下SQL分析索引使用的情况1.SELECT * FROM testTable WHERE c1='a1' AND c2='...原创 2020-02-17 10:06:49 · 265 阅读 · 0 评论 -
MySQL索引优化(二)
MySQL索引优化(二)一、演示索引失效问题(1)先建立一个staffs表,往其中插入三条数据,其中id为自增的主键(2)在name,age,pos字段上建立复合索引:ALTER TABLE staffs ADD INDEX idx_staffs_nameAgePos(name,age,pos);(3)现在先列出一些常见的引起索引失效的原因:1.全值匹配我最爱:EXPLAIN S...原创 2020-02-15 21:26:15 · 278 阅读 · 0 评论 -
MySQL索引优化(一)
MySQL索引优化索引单表优化案例:(1)首先建立一个article表:往其中插入三条数据:(2)查询category_id为1且comments大于1的情况下,views最多的article_id select id,author_id from article where category_id=1 and comments>1 order by views desc l...原创 2020-02-14 12:34:48 · 175 阅读 · 0 评论 -
使用C3P0连接池时TimeoutException的解决方法
C3P0数据库连接池解决:Exception in thread "main" java.sql.SQLException: An attempt by a client to checkout a Connection has timed out.Caused by: com.mchange.v2.resourcepool.TimeoutException: A client timed out while waiting to acquire a resource from com.......的方法原创 2019-08-27 11:35:45 · 2366 阅读 · 2 评论 -
JDBCUtils工具类代码的实现和一些常见问题的总结
本文实现了JDBCUtils工具类,并总结了一些常见问题,欢迎大家参考、阅读和交流!原创 2019-08-26 13:46:43 · 3850 阅读 · 4 评论 -
MySQL 5.7.27详细下载安装配置教程
本文详细介绍了Win 10下MySQL 5.7.27的安装及配置步骤,也列举出了一些常见的问题及解决方案原创 2019-08-18 17:24:53 · 343845 阅读 · 375 评论