Mysql
文章平均质量分 73
JdbcUtils
生活不止眼前的苟且,还有诗和远方。
展开
-
总结一些索引使用和优化规范
1、索引列的数据长度能少则少。答:这个原因很简单,B-Tree各个节点能存储信息更多,减少树的告诉,效率自然也能得到提示。2、索引一定不是越多越好,越全越好,一定是建合适的。答:索引多了,检索速度虽然可能得到提升。但是“写”相关操作的效率可就不容小觑了。3、匹配列前缀可用到索引like abc%。但是 like %9999%、like %9999用不到索引。答:最左匹配原则。4、Whe...原创 2019-04-01 20:40:15 · 51843 阅读 · 0 评论 -
重温Mysql及部分原理挖掘
01 | 基础架构:一条SQL查询语句是如何执行的?大体来说,MySQL 可以分为 Server 层和存储引擎层两部分。Server 层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。存储引擎层负责数据的存储和提取。其架构模式是插件...原创 2020-08-21 18:26:31 · 18471 阅读 · 0 评论 -
深度认识 Sharding-JDBC:做最轻量级的数据库中间层
Sharding-JDBC 采用在 JDBC 协议层扩展分库分表,是一个以 jar 形式提供服务的轻量级组件,其核心思路是小而美地完成最核心的事情。对于这么优秀的一个项目, 在高手问答第 144 期中策划了 “ 轻量级数据库中间层 Sharding-JDBC 深度解析 ” 的主题,并邀请了 @当当_亮(张亮)作为高手嘉宾。通过对答的形式了解Sharding-JDBC。Q:Sharding-J...转载 2018-12-19 10:17:36 · 12869 阅读 · 0 评论 -
解决mysql出现ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES/NO)【Mac】
mysql出现ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES/NO)原因我在这边就不多赘述,主要理一下解决方式;1、首先stop你的mysql服务:2、打开终端做如下操作,开启权限:$ cd /usr/local/mysql/bin$ sudo su 3、再输入如...原创 2018-10-09 23:26:46 · 11246 阅读 · 6 评论 -
数据库存储引擎MyISAM与InnoDB的区别
MyISAM与InnoDB是mysql目前比较常用的两个数据库存储引擎,MyISAM与InnoDB的主要的不同点在于性能和事务控制上。MyISAM是MySQL5.5之前版本默认的数据库存储引擎。InnoDB是MySQL5.5版本的默认数据库存储引擎.。1. 区别:(1)事务处理:MyISAM是非事务安全型的,而InnoDB是事务安全型的(支持事务处理等高级处理);(2)锁机...转载 2018-09-06 20:14:45 · 12467 阅读 · 0 评论 -
导致全表扫描的十种SQL语句
1、模糊查询效率很低:原因:like本身效率就比较低,应该尽量避免查询条件使用like;对于like ‘%…%’(全模糊)这样的条件,是无法使用索引的,全表扫描自然效率很低;另外,由于匹配算法的关系,模糊查询的字段长度越大,模糊查询效率越低。解决办法:首先尽量避免模糊查询,如果因为业务需要一定要使用模糊查询,则至少保证不要使用全模糊查询,对于右模糊查询,即like ‘…%’,是会使用索引的...转载 2018-08-25 22:37:38 · 13379 阅读 · 0 评论 -
Docker安装和使用(tomcat、mysql使用)
Docker一、简介Docker是一个开源的应用容器引擎;是一个轻量级容器技术; Docker支持将软件编译成一个镜像;然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像; 运行中的这个镜像称为容器,容器启动是非常快速的。二、核心概念docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统之上);doc...原创 2018-07-24 10:42:34 · 18462 阅读 · 0 评论 -
Linux系统下MySQL 安装
MySQL 安装本教程的系统平台:CentOS release 6.6 (Final) 64位。一、安装编译工具及库文件yum -y install gcc gcc-c++ make autoconf libtool-ltdl-devel gd-devel freetype-devel libxml2-devel libjpeg-devel libpng-devel openssl-devel c...转载 2018-05-02 23:39:16 · 5070 阅读 · 0 评论 -
文章已删除
文章已删除!原创 2018-04-27 18:25:45 · 10152 阅读 · 0 评论 -
MySQL教程(32)导入数据
MySQL 导入数据MySQL中可以使用两种简单的方式来导入MySQL导出的数据。 使用 LOAD DATA 导入数据MySQL 中提供了LOAD DATA INFILE语句来插入数据。 以下实例中将从当前目录中读取文件 dump.txt ,将该文件中的数据插入到当前数据库的 mytbl 表中。mysql> LOAD DATA LOCAL INFILE 'dump.tx...转载 2018-04-08 10:09:09 · 5189 阅读 · 0 评论 -
MySQL教程(31)导出数据
MySQL 导出数据MySQL中你可以使用SELECT...INTO OUTFILE语句来简单的导出数据到文本文件上。使用 SELECT ... INTO OUTFILE 语句导出数据以下实例中我们将数据表 runoob_tbl 数据导出到 /tmp/tutorials.txt 文件中:mysql> SELECT * FROM runoob_tbl -> I...转载 2018-04-08 10:08:58 · 5375 阅读 · 0 评论 -
MySQL教程(30)及 SQL 注入
MySQL 及 SQL 注入如果您通过网页获取用户输入的数据并将其插入一个MySQL数据库,那么就有可能发生SQL注入安全的问题。本章节将为大家介绍如何防止SQL注入,并通过脚本来过滤SQL中注入的字符。所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。我们永远不要信任用户的输入,我们必须认定用户输入的...转载 2018-04-07 22:11:34 · 171 阅读 · 0 评论 -
MySQL教程(29)处理重复数据
MySQL 处理重复数据有些 MySQL 数据表中可能存在重复的记录,有些情况我们允许重复数据的存在,但有时候我们也需要删除这些重复的数据。本章节我们将为大家介绍如何防止数据表出现重复数据及如何删除数据表中的重复数据。防止表中出现重复数据你可以在MySQL数据表中设置指定的字段为 PRIMARY KEY(主键) 或者 UNIQUE(唯一) 索引来保证数据的唯一性。 让我们尝...转载 2018-04-07 22:08:10 · 5317 阅读 · 0 评论 -
MySQL教程(28)序列使用
MySQL 序列使用MySQL序列是一组整数:1, 2, 3, ...,由于一张数据表只能有一个字段自增主键, 如果你想实现其他字段也实现自动增加,就可以使用MySQL序列来实现。本章我们将介绍如何使用MySQL的序列。使用AUTO_INCREMENTMySQL中最简单使用序列的方法就是使用 MySQL AUTO_INCREMENT 来定义列。实例以下实例中创建了数据表in...转载 2018-04-07 22:08:05 · 5082 阅读 · 0 评论 -
MySQL教程(27)元数据
MySQL 元数据你可能想知道MySQL以下三种信息:查询结果信息: SELECT, UPDATE 或 DELETE语句影响的记录数。 数据库和数据表的信息: 包含了数据库及数据表的结构信息。 MySQL服务器信息: 包含了数据库服务器的当前状态,版本号等。在MySQL的命令提示符中,我们可以很容易的获取以上服务器信息。 但如果使用Perl或PHP等脚本语言,你就需要调用特定的接口函...转载 2018-04-07 22:07:59 · 5230 阅读 · 0 评论 -
MySQL教程(26)复制表
MySQL 复制表如果我们需要完全的复制MySQL的数据表,包括表的结构,索引,默认值等。 如果仅仅使用CREATE TABLE ... SELECT 命令,是无法实现的。本章节将为大家介绍如何完整的复制MySQL数据表,步骤如下:使用 SHOW CREATE TABLE 命令获取创建数据表(CREATE TABLE) 语句,该语句包含了原数据表的结构,索引等。 复制以下命令显...转载 2018-04-07 22:07:50 · 177 阅读 · 0 评论 -
MySQL教程(25)临时表
MySQL 临时表MySQL 临时表在我们需要保存一些临时数据时是非常有用的。临时表只在当前连接可见,当关闭连接时,Mysql会自动删除表并释放所有空间。临时表在MySQL 3.23版本中添加,如果你的MySQL版本低于 3.23版本就无法使用MySQL的临时表。不过现在一般很少有再使用这么低版本的MySQL数据库服务了。MySQL临时表只在当前连接可见,如果你使用PHP脚本来创建My...转载 2018-04-07 22:07:45 · 204 阅读 · 0 评论 -
MySQL教程(24)索引
MySQL 索引MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。索引分单列索引和组合索引。单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。组合索引,即一个索引包含多个列。创建索引时,你需要...转载 2018-04-07 22:07:41 · 155 阅读 · 0 评论 -
MySQL教程(23)ALTER命令
MySQL ALTER命令当我们需要修改数据表名或者修改数据表字段时,就需要使用到MySQL ALTER命令。开始本章教程前让我们先创建一张表,表名为:testalter_tbl。root@host# mysql -u root -p password;Enter password:*******mysql> use RUNOOB;Database changedmys...转载 2018-04-07 22:07:38 · 252 阅读 · 0 评论 -
MySQL教程(22)事务
MySQL 事务MySQL 事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你即需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务!在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。 事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不...转载 2018-04-07 22:07:30 · 5054 阅读 · 0 评论 -
MySQL教程(21)正则表达式
MySQL 正则表达式在前面的章节我们已经了解到MySQL可以通过 LIKE ...% 来进行模糊匹配。MySQL 同样也支持其他正则表达式的匹配, MySQL中使用 REGEXP 操作符来进行正则表达式匹配。如果您了解PHP或Perl,那么操作起来就非常简单,因为MySQL的正则表达式匹配与这些脚本的类似。下表中的正则模式可应用于 REGEXP 操作符中。模式 描述 ...转载 2018-04-07 22:07:08 · 196 阅读 · 0 评论 -
MySQL教程(20)NULL 值处理
MySQL NULL 值处理我们已经知道 MySQL 使用 SQL SELECT 命令及 WHERE 子句来读取数据表中的数据,但是当提供的查询条件字段为 NULL 时,该命令可能就无法正常工作。为了处理这种情况,MySQL提供了三大运算符:IS NULL: 当列的值是 NULL,此运算符返回 true。 IS NOT NULL: 当列的值不为 NULL, 运算符返回 true。 ...转载 2018-04-06 00:18:41 · 273 阅读 · 0 评论 -
Mysql教程(19)连接的使用
Mysql 连接的使用在前几章节中,我们已经学会了如何在一张表中读取数据,这是相对简单的,但是在真正的应用中经常需要从多个数据表中读取数据。本章节我们将向大家介绍如何使用 MySQL 的 JOIN 在两个或多个表中查询数据。你可以在 SELECT, UPDATE 和 DELETE 语句中使用 Mysql 的 JOIN 来联合多表查询。JOIN 按照功能大致分为如下三类:INNE...转载 2018-04-06 00:18:37 · 335 阅读 · 0 评论 -
MySQL教程(18)分组
MySQL GROUP BY 语句GROUP BY 语句根据一个或多个列对结果集进行分组。在分组的列上我们可以使用 COUNT, SUM, AVG,等函数。GROUP BY 语法SELECT column_name, function(column_name)FROM table_nameWHERE column_name operator valueGROUP BY co...转载 2018-04-06 00:18:21 · 207 阅读 · 0 评论 -
MySQL教程(17)排序
MySQL 排序我们知道从 MySQL 表中使用 SQL SELECT 语句来读取数据。如果我们需要对读取的数据进行排序,我们就可以使用 MySQL 的 ORDER BY 子句来设定你想按哪个字段哪种方式来进行排序,再返回搜索结果。语法以下是 SQL SELECT 语句使用 ORDER BY 子句将查询数据排序后再返回数据:SELECT field1, field2,...f...转载 2018-04-06 00:18:17 · 206 阅读 · 0 评论 -
MySQL教程(16)UNION
MySQL UNION 操作符本教程为大家介绍 MySQL UNION 操作符的语法和实例。描述MySQL UNION 操作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合中。多个 SELECT 语句会删除重复的数据。语法MySQL UNION 操作符语法格式:SELECT expression1, expression2, ... expression_...转载 2018-04-06 00:18:12 · 205 阅读 · 0 评论 -
MySQL教程(15)LIKE 子句
MySQL LIKE 子句我们知道在 MySQL 中使用 SQL SELECT 命令来读取数据, 同时我们可以在 SELECT 语句中使用 WHERE 子句来获取指定的记录。WHERE 子句中可以使用等号 = 来设定获取数据的条件,如 "runoob_author = 'RUNOOB.COM'"。但是有时候我们需要获取 runoob_author 字段含有 "COM" 字符的所有记录,...转载 2018-04-06 00:17:53 · 272 阅读 · 0 评论 -
MySQL教程(14)DELETE 语句
MySQL DELETE 语句你可以使用 SQL 的 DELETE FROM 命令来删除 MySQL 数据表中的记录。你可以在 mysql> 命令提示符或 PHP 脚本中执行该命令。语法以下是 SQL DELETE 语句从 MySQL 数据表中删除数据的通用语法:DELETE FROM table_name [WHERE Clause][WHERE Clause]如...转载 2018-04-06 00:17:45 · 5562 阅读 · 0 评论 -
MySQL教程(13)UPDATE 查询
MySQL UPDATE 查询如果我们需要修改或更新 MySQL 中的数据,我们可以使用 SQL UPDATE 命令来操作。.语法以下是 UPDATE 命令修改 MySQL 数据表数据的通用 SQL 语法:UPDATE table_name SET field1=new-value1, field2=new-value2[WHERE Clause]=new-value1, fi...转载 2018-04-06 00:17:38 · 252 阅读 · 0 评论 -
MySQL教程(12)WHERE 子句
MySQL WHERE 子句我们知道从 MySQL 表中使用 SQL SELECT 语句来读取数据。如需有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句中。语法以下是 SQL SELECT 语句使用 WHERE 子句从数据表中读取数据的通用语法:SELECT field1, field2,...fieldN FROM table_name1, tabl...转载 2018-04-06 00:17:29 · 5224 阅读 · 0 评论 -
MySQL教程(11)查询数据
MySQL 查询数据MySQL 数据库使用SQL SELECT语句来查询数据。你可以通过 mysql> 命令提示窗口中在数据库中查询数据,或者通过PHP脚本来查询数据。语法以下为在MySQL数据库中查询数据通用的 SELECT 语法:SELECT column_name,column_nameFROM table_name[WHERE Clause][LIMIT ...转载 2018-04-06 00:17:16 · 5520 阅读 · 0 评论 -
MySQL教程(10)插入数据
MySQL 插入数据MySQL 表中使用 INSERT INTO SQL语句来插入数据。你可以通过 mysql> 命令提示窗口中向数据表中插入数据,或者通过PHP脚本来插入数据。语法以下为向MySQL数据表插入数据通用的 INSERT INTO SQL语法:INSERT INTO table_name ( field1, field2,...fieldN ) ...转载 2018-04-04 14:30:36 · 325 阅读 · 0 评论 -
MySQL教程(9)删除数据表
MySQL 删除数据表MySQL中删除数据表是非常容易操作的, 但是你再进行删除表操作时要非常小心,因为执行删除命令后所有数据都会消失。语法以下为删除MySQL数据表的通用语法:DROP TABLE table_name ;;在命令提示窗口中删除数据表在mysql>命令提示窗口中删除数据表SQL语句为 DROP TABLE :实例以下实例删除了数据表runo...转载 2018-04-04 14:29:43 · 5352 阅读 · 0 评论 -
MySQL教程(8)创建数据表
MySQL 创建数据表创建MySQL数据表需要以下信息:表名 表字段名 定义每个表字段语法以下为创建MySQL数据表的SQL通用语法:CREATE TABLE table_name (column_name column_type);(column_name column_type); 以下例子中我们将在 RUNOOB 数据库中创建数据表runoob_tbl:...转载 2018-04-04 14:21:39 · 9789 阅读 · 3 评论 -
MySQL教程(7)数据类型
MySQL 数据类型MySQL中定义数据字段的类型对你数据库的优化是非常重要的。MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。数值类型MySQL支持所有标准SQL数值数据类型。这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似数值数据类型(FLOAT、REAL和DOUBLE PRECISI...转载 2018-04-04 14:18:39 · 135 阅读 · 0 评论 -
MySQL教程(6)删除数据库
MySQL 删除数据库使用 mysqladmin 删除数据库使用普通用户登陆mysql服务器,你可能需要特定的权限来创建或者删除 MySQL 数据库。所以我们这边使用root用户登录,root用户拥有最高权限,可以使用 mysql mysqladmin 命令来创建数据库。在删除数据库过程中,务必要十分谨慎,因为在执行删除命令后,所有数据将会消失。以下实例删除数据...转载 2018-04-04 14:16:24 · 286 阅读 · 0 评论 -
MySQL教程(5)创建数据库
MySQL 创建数据库使用 mysqladmin 创建数据库使用普通用户,你可能需要特定的权限来创建或者删除 MySQL 数据库。所以我们这边使用root用户登录,root用户拥有最高权限,可以使用 mysql mysqladmin 命令来创建数据库。实例以下命令简单的演示了创建数据库的过程,数据名为 TestDB:[root@host]# mysqladmin -u r...转载 2018-04-04 14:13:46 · 207 阅读 · 0 评论 -
MySQL教程(4)连接
MySQL 连接使用mysql二进制方式连接您可以使用MySQL二进制方式进入到mysql命令提示符下来连接MySQL数据库。实例以下是从命令行中连接mysql服务器的简单实例:[root@host]# mysql -u root -pEnter password:******root@host]# mysql -u root -pEnter password:*****...转载 2018-04-04 13:55:56 · 223 阅读 · 0 评论 -
MySQL教程(3)推荐客户端 Navicat
推荐使用一款客户端界面操作mysql数据库,Navicat for MySQL.官网下载,安装流程非常简单,一步步往下就可以了;安装完成后,通过 文件--》新建连接,就可以连接上远程或者本地的数据库了,同时也可以对用户进行管理。...原创 2018-04-04 13:43:44 · 5270 阅读 · 0 评论 -
MySQL教程(2)管理
启动及关闭 MySQL 服务器首先,我们需要通过以下命令来检查MySQL服务器是否启动:ps -ef | grep mysqld如果MySql已经启动,以上命令将输出mysql进程列表, 如果mysql未启动,你可以使用以下命令来启动mysql服务器:root@host# cd /usr/bin./mysqld_safe &如果你想关闭目前运行的 MySQL 服务器, 你可以执行以下命令...原创 2018-04-04 11:12:10 · 5149 阅读 · 0 评论