
MySQL
专注于mysql的应用技术
行思坐忆,志凌云
务实北斗应用之星火,畅想北斗产品之燎原
展开
-
千万行数据的表想做分页,抓破老壳学一学。
背景:当进行分页时,MySQL 并不是跳过 offset 行,而是取 offset+N 行,然后放弃前 offset 行,返回 N 行。例如 limit 10000, 20。mysql排序取出10020条数据后,仅返回20条数据,查询和排序的代价都很高。那当 offset 特别大的时候,效率就非常的低下,所以我们要对sql进行改写方法一:使用书签用书签记录上次取数据的位置,过滤掉部分数据前SELECT id, name, description FROM film ORDER BY name LI原创 2020-06-07 12:04:42 · 198 阅读 · 0 评论 -
Navicat Premium连接服务器数据库不成功的原因
问题分析:1.服务器连接时IP地址填写错误。2.连接用户名,密码填写错误。3.未开启mysql服务。4.服务器与个人计算机连接通路故障。5.个人计算机本机IP地址与服务器不在同一个网段(最容易出现的问题)...原创 2018-10-17 16:19:35 · 6331 阅读 · 0 评论 -
MySQL数据的备份与还原
备份对于数据库而言是至关重要的。当数据文件发生损坏、MySQL服务出现错误、系统内核崩溃、计算机硬件损坏或者数据被误删等事件时,使用一种有效的数据备份方案,就可以快速解决以上所有的问题。MySQL提供了多种备份方案,包括:逻辑备份、物理备份、全备份以及增量备份,你可以选择最适合自己使用的方式备份数据。物理备份通过直接复制包含有数据库内容的目录与文件实现,这种备份方式适用于对重要的大规模...转载 2019-12-18 14:52:48 · 135 阅读 · 0 评论 -
Linux环境rmp方式安装MySQL
数据库包下载:https://www.mysql.com/downloads/在GPL开原协议的社区开源版里边下载 我们用mysql community server里边的 其中workbench是客户端工具 MySQL Cluster是oracle自己搞的集群版的(集成了...转载 2019-12-17 10:06:50 · 376 阅读 · 0 评论 -
MySQL详细日志分析(转载整理)
官方手册:https://dev.mysql.com/doc/refman/5.7/en/server-logs.html不管是哪个数据库产品,一定会有日志文件。在MariaDB/MySQL中,主要有5种日志文件:1.错误日志(error log):记录mysql服务的启停时正确和错误的信息,还记录启动、停止、运行过程中的错误信息。2.查询日志(general log):记录建立的客户...转载 2019-12-16 14:26:42 · 305 阅读 · 0 评论 -
mysql日志配置与分析
由于日志文件是掌握数据库运行状态的重要参考,因此日志文件的维护也有十分重要的意义。 mysql的日志类型有二进制日志,错误日志,通用日志,慢查询日志。模块中添加日志分析log-bin=mysql_bin // 二进制日志log-error=/usr/local/mysql/data/mysql_error.log // 错误日志general_log=ON //开启通用日志general_...转载 2019-12-16 14:21:40 · 126 阅读 · 0 评论 -
navicat将数据库表格、存储过程导出为sql文件的方法
第一步:点击工具第二步:点击数据传输第三步:进行选择(选择连接、数据库、表/存储过程、导出为文件)第四步:选择路径,导出原创 2019-12-05 18:59:23 · 1152 阅读 · 0 评论 -
WIN10安装MySQL
第一步:下载MySQL直接到官网下载开发者版本,是一个压缩包,直接解压就行了。 https://dev.mysql.com/downloads/mysql/注意:需要注册Oracle账号第二步:1、使用管理者权限的命令行,先使用cd切到MySQL的安装目录下的bin文件夹2、输入命令mysqld --initialize --console画红线部分是 密码,登录需要用到3、服...原创 2019-10-25 14:54:08 · 119 阅读 · 0 评论 -
如何快速向数据库加入10万条数据
1、程序连接数据库,使用c3p0线程池;2、程序使用线程池,多线程编程;3、采用Fork/Join框架线程池(工作窃取(work-stealing)算法),更高效的多线程编程算法。直接贴代码,代码举例中,近用小规模数据模拟大数据下的数据库批量插入操作。1、数据库连接池package com.example.jdbcConnection; import com.mchange.v2.c...转载 2019-12-29 11:49:23 · 1218 阅读 · 0 评论 -
mysql5.7 performance_schema.session_status' doesn't exist
记录一次数据库版本升级5.7遇到的问题问题1:'performance_schema.session_variables' doesn't exist'performance_schema.session_status' doesn't exist解决:临时生效(重启后需要再次执行,不需要重启数据库)set ...转载 2019-07-15 15:29:16 · 219 阅读 · 0 评论 -
SQL Server占用服务器内存过高解决方案
SQL Server对服务器内存的使用策略是用多少内存就占用多少内存,只用在服务器内存不足时,才会释放一点占用的内存,所以SQL Server 服务器内存往往会占用很高。查看内存状态:DBCC MemoryStatus这些内存一般都是Sql Server运行时候用作缓存的:1. 数据缓存:执行个查询语句,Sql Server会将相关的数据页(Sql Server操作的数据都是以页为单位...转载 2019-03-29 11:03:25 · 1406 阅读 · 0 评论 -
锁机制与实现主从复制
锁机制因资源共享,而造成的并发问题。例子:买最后一件衣服, 商品加锁 -》 流程 -》商品解锁锁分类:1、操作类型:① 读锁(共享锁)多个读同时进行,互不干扰②写锁(互斥锁)如果当前写操作没有完毕,则无法进行读操作和写操作2、操作范围表锁myISAN一次性对一个表整体加锁(开销小,加锁快,无死锁,范围大,容易发生锁操作,并发度低)行锁innoDB一次对一条数据加锁,开销...原创 2018-11-18 15:00:01 · 197 阅读 · 0 评论 -
SQL排查- 慢查询日志与分析数据库海量数据
慢查询日志用于记录MYsql种响应时间超过阈值打开慢日志show variables ‘%slow_query-log%’临时开启set global slow_query_log = 1关闭服务永久开启/etc/my.cnf [mysqlD]修改日志慢查询阈值 ,临时设置和永久设置,改完之后重新登录后生效,不需要重启服务long_query_time = 3select ...原创 2018-11-18 14:52:52 · 767 阅读 · 0 评论 -
MySQL数据库索引实现原理
前言:大家都知道数据库的索引有着提升数据库查询速度的作用,但是很少有人对索引实现原理有深入探讨,本文使用通俗语言进行解析,如有不当,欢迎指正。原理解释:索引采用B树原理,众所周知,二叉排序树是确定一个跟节点后,将比根节点大的数据放到右子节点,比根节点小的数据放到左子节点。而树中的每一个节点指向数据库表中每一行的硬件地址。依据条件查询时,二叉查找树速度和顺序查找速度,大家可想而知。(如上图所示...原创 2018-11-15 14:02:11 · 195 阅读 · 0 评论 -
SQL优化理论基础:MySQL架构总览、查询执行流程、SQL解析顺序(转载)
前言: 一直是想知道一条SQL语句是怎么被执行的,它执行的顺序是怎样的,然后查看总结各方资料,就有了下面这一篇博文了。 本文将从MySQL总体架构--->查询执行流程--->语句执行顺序来探讨一下其中的知识。 一、MySQL架构总览: 架构最好看图,再配上必要的说明文字。 下图根据参考书籍中一图为原本,再在其上添加上...转载 2018-11-14 21:16:23 · 138 阅读 · 0 评论 -
数据库范式理解(针对使用最多一、二、三范式)
1.第一范式(确保每列保持原子性)第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式。第一范式的合理遵循需要根据系统的实际需求来定。比如某些数据库系统中需要用到“地址”这个属性,本来直接将“地址”属性设计成一个数据库表的字段就行。但是如果系统经常会访问“地址”属性中的“城市”部分,那么就非要将“地址”这个属性重新拆分为省份、城市、详细地址等多...翻译 2018-11-16 16:35:56 · 599 阅读 · 0 评论 -
MySQL开发基本知识点
前言:对于之前所学mysql内容进行回顾,比较分散,没有什么条理。主要对mysql进行开始时应了解的基本知识进行记录。知识点:1.主流版本:5.4-5.x使用最多,整合了三方公司新存储引擎(5.5)虚拟机(安装包上传到虚拟机),虚拟机cmd界面2.安装:rpm -ivh rpm软件名yum -y remove(冲突后进行删除)安装时有日志提示修改密码(安装服务端和客户端)GPG...原创 2018-11-18 14:02:40 · 141 阅读 · 0 评论 -
MySQL基本原理
mysql逻辑分层select语句连接层服务层引擎层存储层附加:服务层(真正进行查询,sql优化器【等价Mysql QUery Optimizer】)引擎层 提供了各种数据存储的方式 innoDB[事务优先;行锁],myISAN【性能优先,表锁 】)查询mysql支持哪些引擎 show engines \g是否支持默认InnoDB当前使用引擎 show variable...原创 2018-11-18 14:10:25 · 388 阅读 · 0 评论 -
sql优化(持续更新)基本概念
优化原因:性能低,执行等待时间长,连接查询,索引失效,服务器参数设置不合理优化方法:1.sql语句优化sql语句的编写顺序 select ### from ### where ### 其它。sql语句解析过程 from先找到数据源 where 然后找到相应的条件最后从条件中筛选 select选中的列。总结: 在日常我们进行项目开发时,对sql语句的编写往往没有...原创 2018-11-18 14:20:42 · 178 阅读 · 0 评论 -
数据库索引基本知识(创建索引、删除索引、修改索引)
索引分类:主键索引: 不能为null,唯一索引可以为null单值索引: 单列,每个表可以有多个唯一索引: 不能重复复合索引: 多个列构成的索引,相当于二级目录name,age 两个张三,再看年龄;创建索引:一、create 索引类型 索引名 on 表单值:create index dep_index on tb(dept);唯一create unique index...原创 2018-11-18 14:24:46 · 2907 阅读 · 1 评论 -
sql性能优化原理(explain的参数分析)
sql执行计划:explain:可以模拟sql优化器执行sql语句,从而让开发人员知道自己的sql情况优化方法 官网:optimization.htmlexplain使用:explain + sql 语句select t.* from teacher t,course c,teacherCart tc where …explain的类型分析:① id:id值相同,从上往下顺序执行...原创 2018-11-18 14:34:43 · 720 阅读 · 0 评论 -
SQL优化示例
前言:where后面的条件执行顺序与复合索引顺序相同顺序不同,sql优化器会自动优化(耗时间)“跨列” A1 A2 A4 少了一列(1)单表优化:第一步加索引,第二步分析sql解析过程,将索引定义顺序与分析过程指定一致升级优化时,删除之前的索引第三部 type升级调节where后条件顺序,考虑in有时候失效的情况总结: 索引不能跨列使用,保持索引定义和使用顺序使用,索引逐步...原创 2018-11-18 14:40:57 · 207 阅读 · 0 评论 -
避免数据库索引失效的原则
1,复合索引不要跨列或者无序使用(最佳左前缀)复合索引,尽量使用全索引匹配2,不要在索引上进行任何操作(计算、函数、类型转换)where a.x *3 则失效,复合索引一个失效则其它索引都失效独立索引,左边失效,右边不失效,不产生影响3,复合索引不能使用 不等于 != ,is nullsql优化是一种概率优化,至于是否实际使用,根据key涉及底层内容,< > = 复合...原创 2018-11-18 14:44:54 · 309 阅读 · 0 评论 -
sql查询结果转化为JSON数据格式
分析:查询结果转换成json需要经过两个步骤,首先将查询结果转成XML数据,然后通过XML数据转成json。代码部分来源于网上。一、查询结果转为XML//其中@ParameterSQL为要查询的语句,@XMLXML格式数据,@XMLStringXML转成字符串DECLARE @ParameterSQL NVARCHAR(MAX)='SELECT * FROM table';DECLARE...原创 2018-09-18 16:41:25 · 10323 阅读 · 2 评论