Mysql
文章平均质量分 84
GoverChan
活在当下~
展开
-
mysql索引的存储秘密
一、‘页’和操作系统的关系①为什么要有内存管理?我们知道,一个进程完成他的功能,需要访问磁盘加载数据到内存然后等待进入 cpu 运算,因为数据量大小远远大于内存大小。因此提出虚拟内存概念。虚拟内存就是将程序用到的数据进行划分,暂时用不到的放到磁盘里,用到的放到内存里,操作系统中总是运行着不止一个进程,各个进程有优先级顺序,所以存在进程调度问题,进程的每次调度都会导致内存和磁盘数据置换,段式内存管理页式内存管理都是基于虚拟内存概念的具体内存管理解决方案。②什么是页式内存管理...转载 2020-11-25 10:51:49 · 2026 阅读 · 0 评论 -
MySQL的数据结构为何是B+树?
MySQL索引磁盘IO与预读前面提到了访问磁盘,那么这里先简单介绍一下磁盘IO和预读,磁盘读取数据靠的是机械运动,每次读取数据花费的时间可以分为寻道时间、旋转延迟、传输时间三个部分,寻道时间指的是磁臂移动到指定磁道所需要的时间,主流磁盘一般在5ms以下;旋转延迟就是我们经常听说的磁盘转速,比如一个磁盘7200转,表示每分钟能转7200次,也就是说1秒钟能转120次,旋转延迟就是1/120/2 = 4.17ms;传输时间指的是从磁盘读出或将数据写入磁盘的时间,一般在零点几毫秒,相对于前两个时间可以忽略转载 2020-11-24 09:30:40 · 215 阅读 · 0 评论 -
高薪之路,史上更全的 MySQL 高性能优化实战总结
前言MySQL 对于很多 Linux 从业者而言,是一个非常棘手的问题,多数情况都是因为对数据库出现问题的情况和处理思路不清晰。在进行 MySQL 的优化之前必须要了解的就是 MySQL 的查询过程,很多的查询优化工作实际上就是遵循一些原则让 MySQL 的优化器能够按照预想的合理方式运行而已。今天给大家体验 MySQL 的优化实战,助你高薪之路顺畅!优化的哲学注意...转载 2019-12-29 22:07:30 · 129 阅读 · 0 评论 -
mysql实现快速插入100万条数据
1、生成思路利用mysql内存表插入速度快的特点,先利用函数和存储过程在内存表中生成数据,然后再从内存表插入普通表中2、创建普通表及内存表普通表CREATE TABLE `vote_record` ( `id` INT (11) NOT NULL AUTO_INCREMENT, `user_id` VARCHAR (20) NOT NULL, `vote_i...转载 2019-11-11 14:23:58 · 3340 阅读 · 1 评论 -
从Mysql系统表中总结出来的建表规则
以下是系统表schema:information_schema的TABLES的建表语句mysql> desc tables;+-----------------+--------------+------+-----+---------+-------+| Field |Type | Null | Key | Default |Extra |+------...原创 2015-07-28 00:07:01 · 340 阅读 · 0 评论 -
索引的建立方式,直接会影响到查询性能。
索引的建立,直接会影响到查询性能。看下面的查询:select * from ddd where id>1 order by score;我们查询学号大于1的学生的各科成绩得分。那么按照一般的思路,是这样建立索引的(id,score)。explain一下:mysql> explain select * from ddd where id>1 order by score;+---...原创 2015-07-27 23:57:10 · 463 阅读 · 0 评论 -
mysql实现增量备份
有点要注意 如果你误删了表 想通过这个恢复 必须恢复日志里面有创建表的日志 不然的话是无法回复的 就是必须是从你开始创建表的时候就已经记录日志了 恢复到哪个位置 就按照哪个位置来计算mysql 5.0不支持增量备份增量备份定义 mysql数据库会以二进制形式 自动把用户对mysql数据库的操作 记录到文件 当用户希望恢复的时候可以使用备份文件 进行回复 增量备份会记录 (dml 语...原创 2015-07-27 22:40:35 · 353 阅读 · 0 评论 -
mysql的查询、子查询及连接查询
一、mysql查询的五种子句 where(条件查询)、having(筛选)、group by(分组)、order by(排序)、limit(限制结果数) 1、where常用运算符: 比较运算符 > , < ,= , != (< >),>= , <= ...原创 2015-07-27 13:10:27 · 284 阅读 · 1 评论 -
mysql 实验分析
一、 问题1:当字段带有别名的时候,where , group , having , order on 分别是对真名有效还是别名有效? 问题2:select 后面的字段不列出来的时候,这些where,group..条件哪些能生效? 结果: 答1 答2 where原创 2016-02-25 10:06:11 · 543 阅读 · 0 评论 -
UTF-8 GBK UTF8 GB2312 之间的区别和关系
UTF-8:Unicode TransformationFormat-8bit,允许含BOM,但通常不含BOM。是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中文使用24为(三个字节)来编码。UTF-8包含全世界所有国家需要用到的字符,是国际编码,通用性强。UTF-8编码的文字可以在各国支持UTF8字符集的浏览器上显示。如,如果是UTF8编码,则在外国人的英文IE上也能显示...原创 2015-08-09 22:35:43 · 355 阅读 · 0 评论 -
分配mysql用户权限以及修改密码
一、MySQL用户的基本说明:1.1 用户的基本结构MySQL的用户:用户名@主机用户名:16个字符以内主机:可以是主机名、IP地址、网络地址等主机名:www.toxingwang.com,localhostIP:192.168.0.1网络地址:172.16.0.0/255.255.0.0主机还支持通配符:%和_172.16.%.%%.toxingwang.com注意:对于包含了主机名的用户,My...原创 2017-06-14 13:44:51 · 884 阅读 · 0 评论 -
limit大数据时的性能优化
1. 直接用limit start, count分页语句, 也是我程序中用的方法:select * from product limit start, count当起始页较小时,查询没有性能问题,我们分别看下从10, 100, 1000, 10000开始分页的执行时间(每页取20条), 如下:select * from product limit 10, 20 0.01原创 2018-03-29 14:54:04 · 946 阅读 · 0 评论 -
phpstudy升级mysql版本5.7.25_随笔
1 去官网下载社区版本,(phpstudy是32位的)2 搜索“phpstudy 升级 mysql”文章 1)准备配置文件(修改basedir,datadir):my.ini 2)初始化data目录:mysqld --initialize 3)安装:mysqld -install 4)启动:net start mysqld3 可能遇到的问题: ...原创 2019-03-15 11:50:04 · 265 阅读 · 0 评论 -
查询语句中select from where group by having order by的执行顺序
查询语句中select from where group by having order by的执行顺序1.查询中用到的关键词主要包含六个,并且他们的顺序依次为select--from--where--group by--having--order by其中select和from是必须的,其他关键词是可选的,这六个关键词的执行顺序与sql语句的书写顺序并不是一样的,而是...转载 2019-03-25 12:42:30 · 1873 阅读 · 0 评论 -
Mysql建表与索引使用规范整理
一,设计表规范:1. MySQL建表,字段需设置为非空,需设置字段默认值。2. MySQL建表,字段需NULL时,需设置字段默认值,默认值不为NULL。3. MySQL建表,如果字段等价于外键,应在该字段加索引。4. MySQL建表,不同表之间的相同属性值的字段,列类型,类型长度,是否非空,是否默认值,需保持一致,否则无法正确使用索引进行关联对比。5. MySQL使用时,一条SQL语句只能使用一个...原创 2015-07-28 00:07:39 · 303 阅读 · 0 评论 -
mysql字段取值参考
日期和时间数据类型MySQL数据类型含义date3字节,日期,格式:2014-09-18time3字节,时间,格式:08:42:30datetime8字节,日期时间,格式:2014-09-18 08:42:30timestamp4字节,自动存储记录修改的时间year1字节,年份数值数据类型整型MySQL数据类型含义(有符号)tinyint1字节,范围(-128~127)smallint2字节,范围...原创 2015-07-28 15:40:00 · 2020 阅读 · 0 评论 -
mysql左连和右连
例子,相信你一看就明白,不需要多说 A表(a1,b1,c1) B表(a2,b2) a1 b1 c1 a2 b2 01 数学 95 01 张三 02 语文 90 02 李四 03 英语 80 04 王五 select A.*,B.* from A left outer join B on(A.a1=B.a2) 结果是: a1 b1 c1 a2 b2 01 数学 95 01 张三...原创 2015-08-06 12:53:08 · 387 阅读 · 0 评论 -
张宴的博客nginx+php+mysql搭建篇
[2010-3-4 20:10 | by张宴] [文章作者:张宴 本文版本:v6.3 最后修改:2010.07.26转载请注明原文链接:http://blog.zyan.cc/nginx_php_v6/] 前言:本文是我撰写的关于搭建“Nginx + PHP(FastCGI)”Web服务器的第6篇文章。本系列文章作为国内最早详细介绍 Nginx + PHP 安装、配置、使用的资料之一,...原创 2016-07-19 23:02:38 · 5886 阅读 · 1 评论 -
淘宝开源Web服务器Tengine基本安装步骤
准备工作(安装 Tengine 需要:pcre、openssl、zlib 源码)http://tengine.taobao.org/download/tengine-2.1.2.tar.gzhttp://jaist.dl.sourceforge.net/project/pcre/pcre/8.39/pcre-8.39.ziphttp://heanet.dl.sourceforge.net/proj...原创 2016-07-05 00:32:22 · 941 阅读 · 0 评论 -
FOR UPDATE 详解
该文章有些不对的地方,不过作参考还可以。 MySQL 使用SELECT ... FOR UPDATE 做事务写入前的确认以MySQL 的InnoDB 为例,预设的Tansaction isolation level 为REPEATABLE READ,在SELECT 的读取锁定主要分为两种方式:SELECT ... LOCK IN SHARE MODE SELECT ... FOR UPDATE这...原创 2016-05-19 14:32:35 · 858 阅读 · 0 评论 -
sql基础执行顺序
基础的SQL执行顺序SQL语句执行的时候是有一定顺序的。理解这个顺序对SQL的使用和学习有很大的帮助。1.from 先选择一个表,或者说源头,构成一个结果集。2.where 然后用where对结果集进行筛选。筛选出需要的信息形成新的结果集。3.group by 对新的结果集分组。4.having 筛选出想要的分组。5.select 选择列。6....原创 2015-12-10 12:53:55 · 291 阅读 · 0 评论 -
mysql left( right ) join使用on 与where 筛选的差异
有这样的一个问题mysql查询使用mysql中left(right)join筛选条件在on与where查询出的数据是否有差异。可能只看着两个关键字看不出任何的问题。那我们使用实际的例子来说到底有没有差异。 例如存在两张表结构 表结构1Sql代码drop table if EXISTS A; CREATE TABLE A ( ID int(1) NOT NULL, PRIMA...原创 2015-12-10 12:49:13 · 453 阅读 · 0 评论 -
MYSQL explain说明
重点是第二种用法,需要深入的了解。先看一个例子:mysql> explain select * from t_order; +----+-------------+---------+------+---------------+------+---------+------+--------+-------+ | id | select_type | table | type | po...原创 2015-12-09 17:38:00 · 247 阅读 · 0 评论 -
MYSQL explain详解
explain显示了mysql如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。先解析一条sql语句,看出现什么内容EXPLAINSELECTs.uid,s.username,s.name,f.email,f.mobile,f.phone,f.postalcode,f.addressFROM uchome_space ASs,uchome_spacefie...原创 2015-08-18 00:20:05 · 269 阅读 · 0 评论 -
查询优化(一) @2012-06-02
MYSQL查询优化(一)一、 通过查询缓冲提高查询速度 一般我们使用SQL语句进行查询时,数据库服务器每次在收到客户端发来SQL后,都会执行这条SQL语句。但当在一定间隔内(如1分钟内),接到完全一样的SQL语句,也同样执行它。虽然这样可以保证数据的实时性,但在大多数时候,数据并不要求完全的实时,也就是说可以有一定的延时。如果是这样的话,在短时间内执行完全一样的SQL就有些得不偿失。 幸好My...原创 2015-08-09 23:58:31 · 324 阅读 · 0 评论 -
存储引擎概念(基本概念)
1.存储引擎概念打比方说:一部电影有mp4,wmv,avi,flv...等格式。同样的一部电影在硬盘上有不同的存储格式,所占的空间与清晰程度也各不一样。那么我们表里的数据存储在硬盘上,是如何存储的呢?存储的方式也有很多种。对于用户来说,同样一张表的数据,无论用什么引擎来存储,用户看到的数据都是一样的,但对于服务器来说是有区别的。数据库对同样的数据,有着不同的存储方式和管理方式,在mysql中,称为...原创 2015-08-09 23:45:19 · 894 阅读 · 0 评论 -
mysql的备份与恢复(基本概念)
备份与恢复系统运行中,增量备份与整体备份。例如:每周日整体备份一次,周一到周六只备份当天。如果周五的数据出了问题,可以用周日的整体+周一、周二、周三、周四来恢复。 备份的工具:有第三方的收费备份工具,目前我们所学的是系统自带的备份功能,mysqldump。mysqldump 可以导出库、表。备份:例1:导出muagua库下面的goods表mysqldump -u用户名 -p密码 库名 表1 表2 ...原创 2015-08-09 23:43:40 · 373 阅读 · 0 评论 -
mysql之索引(基本概念)
一、索引是什么?比如我们要在字典中找某一字,如何才能快速找到呢?那就是通过字典的目录。对数据库来说,索引的作用就是给‘数据’加目录。 二、索引算法设有N条随机记录,不用索引,平均查找N/2次,那么用了索引之后呢?tree(二叉树)索引 log2Nhash(哈希)索引 1 三、优缺点优点:加快了查询的速度(select)缺点:降低了增删改的速度(update/delete/insert)...原创 2015-08-09 23:42:36 · 730 阅读 · 0 评论 -
Limit优化
Limit语法:SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offsetLIMIT子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。初始记录行的偏移量是 0(而不是 1)。为了...原创 2015-08-09 23:34:51 · 372 阅读 · 0 评论 -
Oracle数据库查询优化方案(处理上百万级记录如何提高处理查询速度)
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:select id from t wh...原创 2015-08-09 23:33:49 · 18164 阅读 · 4 评论 -
mysql官方下载安装教程(centos)
Linux下Mysql5.6.30tar包安装(2016-04-27 22:45:39)转载▼环境:centos 6.4 x64先下载mysql安装包打开http://dev.mysql.com/downloads/mysql/选择 linux - Generic下载完毕后,得到安装包 mysql-5.6.21-linux-glibc2.5-x86_64.tar.gz此包不再需要make...原创 2016-07-20 00:19:27 · 12721 阅读 · 1 评论