数据库-mysql
文章平均质量分 92
小米加大炮
天生我材必有用,千金散尽还复来!
展开
-
mysql原理(2)一文详解MySQL主从同步原理
mysql 主从同步转载 2022-07-21 20:04:36 · 565 阅读 · 0 评论 -
mysql原理(1) mysql底层数据结构
一、前言1.1 索引结构及查找算法一个sql语句在mysql里究竟是如何运行的呢?又是怎么去查找的呢? 其中就涉及到数据库(存储数据)以及查找算法。 先来看一下几种查找算法;目录查找:类似索引 遍历:暴力查找 二分:B+树的基础算法 键查找:hash查找能做索引的数据结构有:数组、链表、红黑树、B树(B-树、B+树)。那么哪种数据结构适合做 MySql 数据库的存储结构呢?先来说下数据的一般存储方式:内存(适合小数据量)、磁盘(大数据量)。磁盘的运转方式:速度 + 旋转,磁盘页转载 2021-06-29 20:00:24 · 5830 阅读 · 3 评论 -
mysql性能优化(10) mysql查询查询技巧
1、查询 SQL 尽量不要使用 select *,而是 select 具体字段反例:select * from employee;推荐写法:select id,name from employee;推荐理由:只取需要的字段,节省资源、减少网络开销。 select * 进行查询时,很可能就不会使用到覆盖索引了,就会造成回表查询。2、如果知道查询结果只有一条或者只要最大/最小一条记录,建议用 limit 1假设现在有 employee 员工表,要找出一个名字叫 jay 的人:转载 2020-05-28 19:37:16 · 1625 阅读 · 0 评论 -
mysql基础(10) MYSQL 组合索引使用(一)
MYSQL版本:一、建表SQLDROP TABLE IF EXISTS `index_test`;CREATE TABLE `index_test` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键ID', `name` varchar(32) DEFAULT '' COMMENT '姓名', `age` int(3...原创 2019-10-24 23:23:07 · 231 阅读 · 0 评论 -
mysql基础(七) 数据库事务隔离级别
数据库事务的隔离级别有4个,由低到高依次为Read uncommitted 、Read committed、Repeatable read 、Serializable ,这四个级别可以逐个解决脏读 、不可重复读 、幻读 这几类问题。√: 可能出现 ×: 不会出现脏读不可重复读幻读Read uncommitted√√√转载 2016-02-26 11:22:19 · 424 阅读 · 0 评论 -
MYSQL用法(十七) MySQL中DATE_FORMAT()用法
1.学习网站: http://www.w3school.com.cn/sql/func_date_format.asp2.sql示例:SELECT DATE_FORMAT(NOW(),'%Y') YEAR;SELECT DATE_FORMAT(NOW(),'%y') YEAR;SELECT DATE_FORMAT(NOW(),'%m') MONTH;SELECT DATE_FORMA原创 2015-11-16 13:49:42 · 906 阅读 · 0 评论 -
MYSQL用法(十四) MySQL中字符串连接函数
一 concat 函数使用方法: CONCAT(str1,str2,…) 返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。注意:如果所有参数均为非二进制字符串,则结果为非二进制字符串。 如果自变量中含有任一二进制字符串,则结果为一个二进制字符串。一个数字参数被转化为与之相等的二进制字符串格式;若要避免这种情况,可使用显式类型 c原创 2015-09-22 10:28:22 · 2344 阅读 · 0 评论 -
MYSQL用法(十六) MySQL按指定字段自定义列表排序
一、 ORDER BY 排序要求:按照字段IS_NEW_PROJ的降序、字段LOAN_APR的降序、字段GMT_BUY_START的升序排序sql语句如下:SELECT b.PROJECT_ID AS project_id, b.PROJECT_TITLE AS project_title, b.PROJECT_STATUS AS project_status, b.LOAN_原创 2015-11-06 10:13:31 · 3744 阅读 · 0 评论 -
MYSQL用法(十五) MySQL中FIND_IN_SET()用法
FIND_IN_SET(str,strlist)返回str在字符串集strlist中的序号(任何参数是NULL则返回NULL,如果str没找到返回0,参数1包含","时工作异常)例子:查询表字段 pingid = (1,2,3,)SELECT * FROM `linkinfo` WHERE `pingid` REGEXP '{id},' AND `pingid` NOT REGEXP '[[:al...转载 2015-11-05 10:26:59 · 3372 阅读 · 0 评论 -
mysql性能优化(五) mysql中SELECT+UPDATE处理并发更新问题解决方案
一 问题背景:假设MySQL数据库有一张会员表vip_member(InnoDB表),结构如下:当一个会员想续买会员(只能续买1个月、3个月或6个月)时,必须满足以下业务要求:•如果end_at早于当前时间,则设置start_at为当前时间,end_at为当前时间加上续买的月数•如果end_at等于或晚于当前时间,则设置end_at=end_at转载 2015-05-13 16:01:05 · 11852 阅读 · 0 评论 -
MYSQL用法(十三) MySQL中INSERT INTO SELECT 的使用详解
1. 语法介绍 有三张表a、b、c,现在需要从表b和表c中分别查几个字段的值插入到表a中对应的字段。对于这种情况,可以使用如下的语句来实现: INSERT INTO db1_name (field1,field2) SELECT field1,field2 FROM db2_name 上面的语句比较适合两个表的数据互插,如果多个表就不适应了。对原创 2015-03-11 09:19:46 · 7958 阅读 · 0 评论 -
MYSQL用法(三) UNION,UNION ALL 用法
一 知识点UNION 用于合并两个或多个 SELECT 语句的结果集,并消去表中任何重复行。UNION 内部的 SELECT 语句必须拥有相同数量的列,列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同.SQL UNION 语法:SELECT column_name FROM table1UNIONSELECT column_n原创 2014-08-12 14:09:28 · 7812 阅读 · 0 评论 -
MYSQL用法(九) 索引用法
什么是索引索引时一种特殊的文件,他们包涵着对数据表里所有记录的引用指针。当对数据表记录进行更新后,都会对索引进行刷新。索引会占用相当大的空间,应该只为经常查询和最经常排序的数据列建立索引。索引类型①普通索引:这是最基本的索引类型,而且它没有唯一性之类的限制。普通索引可以通过以下几种方式创建: I.创建索引 例如:CREATE INDEX转载 2014-08-13 10:06:06 · 473 阅读 · 0 评论 -
mysql基础(五) Mysql删除表时,报"Connot delete or update a parent row:a foreign key constraint fails"解决方案
一、删除某张表时,遇到如下报错信息:二、解决办法:因为改条记录的某个字段作为innodb的另外一个表的外链。而在删除操作时会自动检查外链。解决的办法之一是:不检查外链,只需将执行语句前加上下句即可SET foreign_key_checks=0;DROP TABLE wms_stores;原创 2015-12-09 13:51:28 · 14055 阅读 · 0 评论 -
mysql基础(六) 表删除时,报"Connot delete or update a parent row:a foreign key constraint fails"解决方案二
一、有两张表,结构如下: t_item: t_bid: id int id int name varchar name varchar转载 2015-12-09 17:59:33 · 1407 阅读 · 0 评论 -
MYSQL用法(十八) MySQL中查询时带有保留字报错的解决方案
1.前几天碰到一个奇葩的问题,由于是老项目,所以问题比较多: 问题描述: mysql数据库查询时,由于表字段含有"order"/'comment'等mysql自身的保留字名称一样;如果直接用select+字段名称查询,肯定是会报错的... 解决办法: 1.给相应的字段添加反引号(`字段名`),反引号用于区别mysql系统保留原创 2016-03-30 16:23:50 · 1417 阅读 · 1 评论 -
mysql小结(1) MYSQL索引特性小结
1.Sql执行顺序(1) FROM 子句 组装来自不同数据源的数据(2)WHERE 子句 基于指定的条件对记录进行筛选(3) GROUP BY 子句 将数据划分为多个分组(4)使用聚合函数进行计算(5)使用HAVING子句筛选分组(6)计算所有的表达式(7)使用ORDER BY对结果集进行排序(8)select 获取相应列(9) limit截取结果集1.1 相应Case...转载 2019-08-15 20:20:02 · 206 阅读 · 0 评论 -
mysql基础(九) MYSQL 索引类型
一、简介MySQL目前主要有以下几种索引类型:1.普通索引2.唯一索引3.主键索引4.组合索引5.全文索引二、语句CREATE TABLE table_name[col_name data type][unique|fulltext][index|key][index_name](col_name[length])[asc|desc]1.unique|fulltext...转载 2018-08-24 14:55:46 · 194 阅读 · 0 评论 -
mysql性能优化(九) mysql慢查询分析、优化索引和配置
一、 优化概述MySQL数据库是常见的两个瓶颈是CPU和I/O的瓶颈,CPU在饱和的时候一般发生在数据装入内存或从磁盘上读取数据时候。磁盘I/O瓶颈发生在装入数据远大于内存容量的时候,如果应用分布在网络上,那么查询量相当大的时候那么平瓶颈就会出现在网络上,我们可以用mpstat, iostat, sar和vmstat来查看系统的性能状态。除了服务器硬件的性能瓶颈,对于MyS转载 2017-03-13 13:47:07 · 6322 阅读 · 1 评论 -
mysql性能优化(八) mysql索引优化
前言索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点。考虑如下情况,假设数据库中一个表有10^6条记录,DBMS的页面大小为4K,并存储100条记录。如果没有索引,查询将对整个表进行扫描,最坏的情况下,如果所有数据页都不在内存,需要读取10^4个页面,如果这10^4个页面在磁盘上随机分布,需要进行10^4次I/O,假设磁盘每次I/O时间为10ms(忽略数据传输时转载 2017-03-13 10:54:07 · 323 阅读 · 0 评论 -
mysql性能优化(七) 数据库阿里连接池 druid配置详解
Java程序很大一部分要操作数据库,为了提高性能操作数据库的时候,有不得不使用数据库连接池。数据库连接池有很多选择,c3p、dhcp、proxool等,druid作为一名后起之秀,凭借其出色的性能,也逐渐印入了大家的眼帘。接下来本教程就说一下druid的简单使用。首先从 http://repo1.maven.org/maven2/com/alibaba/druid/ 下载最新的jar包。如转载 2017-03-06 11:11:34 · 19158 阅读 · 1 评论 -
MYSQL用法(十九) MySQL中查询时"Lost connection to MySQL server during query"报错的解决方案
一、问题描述:mysql数据库查询时,遇到下面的报错信息:二、原因分析:dw_user 表数据量比较大,直接查询速度慢,容易"卡死",导致数据库自动连接超时....三、解决办法:方案1.在mysql配置文件[myslqd]下面添加一行设置skip-name-resolve.需要重启mysql服务.方案2.在hosts文件内添加: ip与主机名的映射关系[这种方式不用重启原创 2016-04-23 14:41:12 · 9927 阅读 · 0 评论 -
mysql性能优化(六) mysql性能优化的最佳20多条经验分享
今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情。当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能。这里,我们不会讲过多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库。希望下面的这些优化技巧对你有用。 1.转载 2016-02-29 12:42:58 · 471 阅读 · 0 评论 -
MySQL中涉及的几个字符集
character-set-server/default-character-set:服务器字符集,默认情况下所采用的。character-set-database:数据库字符集。character-set-table:数据库表字符集。优先级依次增加。所以一般情况下只需要设置character-set-server,而在创建数据库和表时不特别指定字符集,这样统一采用character-转载 2014-07-06 18:51:21 · 649 阅读 · 0 评论 -
MYSQL用法(十二) Can't connect to MySQL server on 解决方案
一 错误编号:20031.1 问题分析:无法连接到 mysql 服务器,可能的情况为:1、mysql 服务没有启动,一般是在异常的情况下 mysql 无法启动导致的,比如无可用的磁盘空间,my.ini 里 mysql 的 basedir 路径设置错误等;2、mysql 服务器资源紧张,导致无法连接。1.2 解决方法:1、如果你是虚拟主机用户(购买的空间),原创 2014-12-31 12:31:04 · 18537 阅读 · 0 评论 -
MYSQL用法(十) 索引的创建和删除
一 创建索引在执行CREATE TABLE语句时可以创建索引,也可以单独用CREATE INDEX或ALTER TABLE来为表增加索引。11.ALTER TABLEALTER TABLE用来创建普通索引、UNIQUE索引或PRIMARY KEY索引。ALTER TABLE table_name ADD INDEX index_name (colu原创 2014-08-13 10:19:50 · 505 阅读 · 0 评论 -
MYSQL用法(六) 存储过程的创建
1.1 CREATE PROCEDURE (创建)CREATE PROCEDURE存储过程名 (参数列表) BEGIN SQL语句代码块END注意:由括号包围的参数列必须总是存在。如果没有参数,也该使用一个空参数列()。每个参数默认都是一个IN参数。要指定为其它参数,可在参数名之前使用关键词 OUT或I转载 2014-08-12 16:29:05 · 473 阅读 · 0 评论 -
MYSQL用法(十) 将某字段的值全部+5
一 运用场景:将某字段的值全部+5 但这个字段的类型是varchar 并且记录了两个用逗号隔开的整形数据原创 2014-08-18 10:32:02 · 4209 阅读 · 0 评论 -
MYSQL用法(八) 索引失效的各种情况小结
1) 没有查询条件,或者查询条件没有建立索引 2) 在查询条件上没有使用引导列 3) 查询的数量是大表的大部分,应该是30%以上。 4) 索引本身失效5) 查询条件使用函数在索引列上,或者对索引列进行运算,运算包括(+,-,*,/,! 等) 错误的例子:select * from test where id-1=9; 正确的例子:select * from test原创 2014-08-13 10:01:00 · 3789 阅读 · 0 评论 -
MYSQL用法(四) 存储过程插入10000条数据示例
开发环境:Navicat For Mysql第一个例子,带(输出参数)返回值的存储过程:1、建表create table abin5(id int,name5 VARCHAR(39))2、创建存储过程create procedure pabin5(out n int)BEGIN select count(*) from abin5;END3、测试原创 2014-08-12 15:38:08 · 7694 阅读 · 0 评论 -
MYSQL用法(一) IFNULL 函数
BEGININSERT INTO PJ_ORDER (ORDER_CODE,PRODUCT_DESC,ORDER_TYPE,ORDER_STATUS,BUY_FUNDS,BUYER_ID,BUYER_NAME,PRODUCT_ID,PRODUCT_NAME,PRODUCT_EXT,LOAN_ORGNAME,LOAN_USERID,LOAN_U原创 2014-08-12 11:03:38 · 887 阅读 · 0 评论 -
MYSQL用法(二) inner join,left join right join,full join 示例
一 准备工作 mysql >原创 2014-08-12 11:07:30 · 1865 阅读 · 0 评论 -
MYSQL用法(十一) 增加字段、删除字段、修改字段名称、修改字段类型
一 增加字段、删除字段、修改字段名称、修改字段类型原创 2014-08-20 10:00:53 · 11366 阅读 · 1 评论 -
mysql多表更新
一 语法:UPDATE 表1 AS a, pj_order AS o, pj_order_trade_rel AS rSET t.TRADE_REMARK = '测试多表更新'WHEREt.TRADE_ID = r.TRADE_IDAND o.ORDER_ID = r.ORDER_IDAND o.ORDER_TYPE = 'PROJ'AND o.PRODUCT原创 2014-08-06 15:26:09 · 493 阅读 · 0 评论 -
MYSQL用法(七) 存储过程语法及实例
存储过程如同一门程序设计语言,同样包含了数据类型、流程控制、输入和输出和它自己的函数库。--------------------基本语法--------------------一.创建存储过程create procedure sp_name()begin.........end二.调用存储过程1.基本语法:call sp_name()注意:存储过转载 2014-08-13 09:28:14 · 418 阅读 · 0 评论 -
mysql基础(三) Mysql锁机制简介
前言为了保证数据的一致完整性,任何一个数据库都存在锁定机制。锁定机制的优劣直接应想到一个数据库系统的并发处理能力和性能,所以锁定机制的实现也就成为了各种数据库的核心技术之一。本章将对MySQL中两种使用最为频繁的存储引擎MyISAM和Innodb各自的锁定机制进行较为详细的分析。 MySQL锁定机制简介数据库锁定机制简单来说就是数据库为了保证数据的一致性而使各种共享转载 2014-12-19 19:33:29 · 511 阅读 · 0 评论 -
Mysql基础(二) 详解---锁
锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。本章我们着重讨论MySQL锁机制的特点,常见的锁问题,以及解决MySQL转载 2014-12-19 19:30:05 · 478 阅读 · 0 评论 -
mysql性能优化(一) MySQL配置文件mysql.ini参数详解
一 my.ini 在哪?1.1 windows下面:一般为: C:\Program Files\MySQL\MySQL Server 5.5\1.2 linux下面:my.ini(Linux系统下是my.cnf),当mysql服务器启动时它会读取这个文件,设置相关的运行环境参数。二 my.ini的组成?my.ini转载 2014-12-15 12:31:07 · 771 阅读 · 0 评论 -
mysql性能优化(二) mysql ibdata1太大的解决办法
一 如何查看mysql ibdata1:window系统:C:\Documents and Settings\All Users\Application Data\MySQL\MySQL Server 5.5\data\二 解决方式:方式一: 重装mysql注意重装的时候,需要把Application Data下面的MySQL删除.才算mysql卸载干净。重装就不会原创 2014-12-15 12:53:05 · 9172 阅读 · 0 评论 -
Mysql基础(一) mysql给root开启远程访问权限,修改root密码
1.MySql-Server 出于安全方面考虑只允许本机(localhost, 127.0.0.1)来连接访问. 这对于 Web-Server 与 MySql-Server 都在同一台服务器上的网站架构来说是没有问题的. 但随着网站流量的增加, 后期服务器架构可能会将 Web-Server 与 MySql-Server 分别放在独立的服务器上, 以便得到更大性能的提升, 此时 MySql-Serv转载 2014-12-12 16:44:06 · 570 阅读 · 0 评论