
【数据库】
文章平均质量分 66
主要介绍SQL Server 和 MySQL 以及 Oracle日常使用的基础内容
Mandy_i
科技让生活更美好,终身学习的践行者
展开
-
【深入浅出】——MySQL索引B+Tree
索引存在的意义是帮助我们提高查询速度,那么为什么创建了索引,MySQL的查询速度就可以提高呢?为什么MySQL单表的数据达到千万后就开始建议分库分表?基于这些未知的问题,开始本文篇文章的内容。原创 2021-09-05 16:46:22 · 504 阅读 · 1 评论 -
【MySQL】——JSON类型
自从MySQL5.7之后,MySQL开始支持JSON类型,在此之前如果想在表中保存JSON格式类型的数据,则需要依靠varchar或者text之类的数据类型,但是这样并不利于属性的查询,支持json类型后有以下优势存储在JSON列中的JSON文档的会被自动验证。无效的文档会产生错误; 最佳存储格式。存储在JSON列中的JSON文档会被转换为允许快速读取文档元素的内部格式。存储在JSON列中的任何JSON文档的大小都受系统变量max_allowed_packet的值的限制,可以使用JSO...原创 2020-05-31 23:26:54 · 448 阅读 · 1 评论 -
MySQL-高性能使用索引
独立列,多列索引——合适索引顺序前缀索引,索引选择性聚集索引,数据结构只有主键列为聚集索引,其他均为辅助索引为什么主键不建议使用uuid,而是递增序列?三星级索引标准覆盖索引重复索引,冗余索引索引扫描排序索引和锁多列索引应用以及优化(in),拒绝多范围条件...原创 2020-03-08 00:28:25 · 347 阅读 · 0 评论 -
mysql将一列值拼成一条数据,逗号分隔
在数据库直接查数据,需要mysql需要将一列中数据处理成一行展示处理,用于其他逻辑处理,但是不想查询出来自己拼接,所以找到了GROUP_CONCAT函数使用方式如下select GROUP_CONCAT(biz_id) from tb_basic_school但是在使用过程中发现查询数据总感觉少,而且发现最后一条获取的数据是不完整的,于是查了一下GROUP_CONCAT函数,发生深...原创 2019-08-12 22:37:22 · 1910 阅读 · 0 评论 -
mysql字段中提取汉字,去除数字以及字母
需求 最近接到的新需求用户表中有两个字段分别代表用户的系统姓名以及真实姓名,系统姓名在系统中是唯一的用于展示给业务操作人员,减少重名对操作人员的干扰,真实姓名用于用户端展示。但是由于之前需求缺失,并没有对用户真实姓名进行维护,所以这次的要求已系统用户表为准,去掉其中包含的数字以及字母只保留汉字更新到真实姓名中。这个功能使用只使用一次,不建议使用Java程序处理,因为处理之后还...原创 2019-08-12 21:48:18 · 13557 阅读 · 1 评论 -
MySQL基本数据类型
MySQL基本数据类型分为以下几种整型实数字符串日期和时间特殊字符NULL无符号unsigned 使得整型上限提升一倍优化数据类型,提高查询速度MySQL中定义数据字段的类型对你数据库的优化是非常重要的。MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。MYSQL数据类型数值类型MySQL支持所有标准SQL数值数据类型。...原创 2019-05-27 00:40:52 · 355 阅读 · 1 评论 -
【数据库】——分布式数据库演变历程
前提 本文主要介绍分布式数据库演变历程,以及演变过程的解决方案,没有方案的具体实现步骤。数据库高可用的发展历程1、查询操作比较多,利用缓存,缓解数据库的读压力 2、写操作成为数据库瓶颈,利用数据库主从复制,在代码中进行读写分离 3、为了避免写服务器宕机,从而造成写操作异常,进行主主复制 4、单台不能在支撑系统压力的时候,进行集群扩展,...原创 2018-08-14 15:46:59 · 2070 阅读 · 0 评论 -
【MySQL】——索引优化
温故-索引类型聚集索引和非聚集索引 MyIASM引擎,B+树的数据结构中存储的内容实际上是实际数据的地址值。也就是说它的索引和实际数据是分开的,只不过使用索引指向了实际数据。这种索引的模式被称为非聚集索引。 Innodb引擎的索引的数据结构也是B+树,只不过数据结构中存储的都是实际的数据,这种索引有被称为聚集索引。 聚集索引不是一种单独的索引类型,而是一种存储数据的方式 1、主键索引 ...原创 2018-08-12 20:28:35 · 298 阅读 · 0 评论 -
【开发进阶】——MySQL配置主从同步,代码层实现读写分离
前提1、服务器环境 centos7 2、MySQL5.7 3、在两台机器完成MySQL的安装相关内容 4、框架ssm+数据连接池druid+p6spy配置主从同步主服务相关配置 1、在my.cnf中设置如下内容server-id=1log-bin=master-binlog-bin-index=master-bin.index2、创建用户,并授权crea...原创 2018-07-29 15:35:51 · 858 阅读 · 8 评论 -
【MySQL优化】——看懂explain
explain    explain模拟优化器执行SQL语句,在5.6以及以后的版本中,除过select,其他比如insert,update和delete均可以使用explain查看执行计划,从而知道mysql是如何处理sql语句,分析查询语句或者表结构的性能瓶颈。 作用 1、表的读取顺序 2、数据读取操作的操作类型 3、哪些索引可以使用 4、...原创 2018-07-29 11:03:57 · 85962 阅读 · 15 评论 -
【MySQL优化】——慢查询sql的检测与记录
前提 在系统的优化过程中,对SQL语句的优化更是非常重要的一部分。系统上线后发现了许多对性能有影响的SQL。本文主要是讲解利用MySQL的一些状态分析并且记录影响数据库性能的语句。MySQL状态查询 MySQL版本:5.6.24show status;//MySQL状态查询分析其中相对好理解的几点show status like 'com_insert';---显示执原创 2018-01-31 21:32:30 · 3732 阅读 · 53 评论 -
MySQL优化——索引使用
前提 在项目上线过程中发现表中没有加索引,造成服务器cpu迅速飙升,影响了系统的线上环境。趁着这个计划温故一下索引的使用方式。 使用索引好处 使用索引会提升速度主要原因是利用btree方式对数据进行维护,检索的时候使用索引的次数就是log2N次数索引种类 主键索引 把一张表某个列设为主键的时候,则该列则就是主键索引。 操作方式...原创 2018-01-29 21:47:59 · 417 阅读 · 12 评论 -
MySQL优化——表设计
问题 伴随着项目上线,随着数据量的增长,影响系统性能方面也被充分暴露,小编借这次机会重新温故一下表设计,目的通过良好的表结构来优化系统的性能。 小编这次参与的项目一共涉及七个服务,而小编刚好隶属于其中的后两个服务中,所以调用其他服务的数据比较多,再加上这个两个服务的数据比较多,所以数据对小编造成的影响非常的严重。例如小编在存储学生成绩的时候涉及到上课班,行政班,学生个人基础信息原创 2018-01-24 17:02:54 · 388 阅读 · 15 评论 -
Linux下MySQL数据表名大小写
问题——提示数据表找不到 最近项目中使用了集群版的quartz定时器,再加上部署环境重新部署,这个quartz的数据库没少出问题啊!说一个最尴尬的问题吧,项目一共部署了三套环境,开发,联调,测试,同样的代码以及环境配置,可是启动项目的时候一会儿提示找不到qrtz_locks一会儿提示找不到qrtz_LOCKS,quartz集群的表均有这个问题,然后根据提示修改表名项目就完美启动,你说尴不原创 2018-01-22 19:49:50 · 2036 阅读 · 15 评论 -
MySQL中SQL查询优化
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:select id from t where num=03.原创 2018-01-16 11:58:26 · 576 阅读 · 9 评论 -
【数据库】——mysql比较时间大小,精确到秒
前提 最近项目中用到时间的处理问题,比较时间的大小问题,以时间作为截止点,所以对时间的精确度要求比较高,所以精确到秒!使用1、使用了MySQL本身提供的函数//精确到秒SELECT TIMESTAMPDIFF(SECOND,"2017-09-30 18:04:01","2017-09-28 18:04:01")//精确到分钟SELECT TIMESTAMPDIFF原创 2017-10-01 21:06:06 · 12670 阅读 · 7 评论 -
【MySQL】创建普通用户,分配权限,取消权限
在项目开发中使用MySQL数据库,但是不可能每个人都使用root对数据库进行操作,毕竟root的权限太高,一不小心的误操作将可能造成难以估计的损失,所以需要对开发人员进行关于数据库权限的配置,这样既能保证开发工作的正常运行,同时也能保证安全性。创建用户 用户名:rootinsert intomysql.user(Host,User,Password)values('localh原创 2017-07-04 19:26:12 · 1881 阅读 · 13 评论 -
【Oracle】——内连接、外连接
有些业务复杂的时候,在数据层会涉及到几张数据表联查的情况,最近也是在工作中经常会遇到这一部分的内容,所以特此总结一下。建表语句CREATE TABLE userser(NAME VARCHAR(20),sex VARCHAR(20));INSERT INTO userer values ('张三','男');INSERT INTO userser values ('李四','男');原创 2017-05-18 15:11:21 · 670 阅读 · 66 评论 -
【Oracle】——大数据下分页方法
最近工作非常的轻松,只是做了一些小功能oracle显示分页,但是要求随着数据量的加大,不能影响系统的查询速度,这也就是要求小编在所有的解决方案中选择最好的一项。小编先提供两种常用的分页方法方法一、SELECT * FROM (SELECT ROWNUM AS rowno,t.* FROM t_test t WHERE t.rowno <=20) t_t原创 2017-03-17 13:32:39 · 4259 阅读 · 21 评论 -
【物流系统】——C#Oracle批量导入(三)全表匹配
前提 介于Oracle.DataAccess.dll使用问题,小编又找了一种新的替代方式,还请技术主管帮忙封装了一下,以后遇到大数据导入的时候,就再也不害怕了,哈哈。 忍不住了直接上代码了哈哈。过程参数赋值到sql中 private void PrepareCommand(OracleCommand cmd, OracleConnection conn,原创 2017-03-09 17:02:38 · 3717 阅读 · 25 评论 -
【Oracle】——pl/sql中文乱码,显示“?”
前提 最近的项目都是Oracle,虽然小编对oracle数据库一直是一清二白,但是要去学习啊!也是刚刚开始学习使用,问题就不断啊。就说这个最有可能遇到的乱码的问题,第一反应,编码格式的问题! 可就是这个常见的问题,小编也是花费了好久的时间啊。其中最神奇的是解决了全部乱码问题,剩下个别汉字乱码,这个可不能将就啊,毕竟项目是不能将就的。过程 一般是原创 2017-02-09 15:37:06 · 6653 阅读 · 18 评论 -
【数据库】——having和where的区别
各种数据库空白点,各种补,各种基础走起前提 本文主要讲解having和where在数据库使用中有什么不同之处,学习本文的前提,需要先搞懂数据库语句的执行顺序。使用场景不同 where可以用于select、update、delete和insert...into语句中。 having只能用于select语句中 子句有区别whe原创 2017-02-05 18:03:05 · 3754 阅读 · 6 评论 -
【数据库SQL】——聚集索引和非聚集索引根本区别以及使用方式
在上篇博客中小编主要讲解聚集索引和非聚集索引概念性知识,以及两种索引方式的选择。本文主要讲解两种索引的根本区别,并且用实例展示两种索引的使用方式。根本区别 聚集索引和非聚集索引的根本区别是表记录的排列顺序和与索引的排列顺序是否一致。聚集索引 聚集索引表记录的排列顺序和索引的排列顺序一致,所以查询效率快,只要找到第一个索引值记录,其余就连续性的记录在物理也原创 2017-01-17 11:44:37 · 30433 阅读 · 25 评论 -
【数据库】——聚集索引和非聚集索引
聚簇索引是一种特殊索引,使数据按照索引的排序顺序存放表中。实际上重组了表中的标准。当数据按值的范围查询时,聚簇索引就显得特别有用。当大量数据修改的时候,不再适合使用聚簇索引建立聚簇索引的思想1、大多数表都应该有聚簇索引或使用分区来降低对表尾页的竞争,在一个高事务的环境中,对最后一页的封锁严重影响系统的吞吐量。2、在聚簇索引下,数据在物理上按顺序排在数据页上,重复值也排在一起,因而在原创 2017-01-15 23:03:51 · 2291 阅读 · 20 评论 -
【SQL Server进阶】——常用的数据库函数
最近的工作和数据库联系挺多,那些年欠下的债终于开始还了!本文主要是描述一下小编在最近工作用的数据库函数,算是一个知识总结,也算是整理一下常用的数据库函数。连接函数——inner join在至少两个以上的表中存在至少一个匹配时,INNER JOIN 关键字返回行。具体的使用语法Select 字段名 from 表名A INNER JOIN 表名B ON A.字段=B.字原创 2016-12-25 22:11:39 · 877 阅读 · 30 评论 -
【数据库MySQL】——索引增删改查
上篇博客总结了一下,关于索引使用的理论知识,这次主要是讲解一下关于索引涉及到的增删改查,本次主要是对索引的使用。以便多多的将理论知识用于自己的工作之中。以下主要是我们平常会用到的一些索引进行总结,当然这些东西还是要多多用到以后的实践中。原创 2016-10-22 15:54:17 · 1148 阅读 · 24 评论 -
【数据库Mysql】——初识索引
前提 之前学习SqlServer的时候有学习过索引这个概念,但那个时候只是简单的学习了一下概念,对索引的特点,以及概念没有深入的认识,直到最近项目中,项目负责人一直在强调要加索引来提升性能,小编也就顺便用Mysql数据库补充了自己之前的不足之处。何为索引? 索引是创建在表上,是对数据库表中一列或多列的值进行排序的一种结构。索引可以提高查询的速度。为什么索引可原创 2016-09-18 16:23:26 · 655 阅读 · 30 评论 -
【数据库Mysql】——存储引擎
现在小编的工作中会经常用到MySQL,所以最近在学习一些MySQL的使用,其中提到了存储引擎的概念。本文也是主要讲解存储引擎的概念,内容,分类以及该如何选择合适的存储引擎。 存储引擎的概念是MySQL的特点,而且是一种插入式的存储引擎概念,存储引擎就是指表的类型,数据库的存储引擎决定了表在计算机中存储方式,用户可以根据自己的不同要求,选择不同的存储方式、是否进行事务处理。查看MySQ原创 2016-09-11 16:08:57 · 654 阅读 · 19 评论 -
【数据库】——Navicat Premium快捷操作
从图书馆系统开始后,数据库改用了Mysql,就开始使用了一个新的工具就是Navicat Premium。用Mysql的同胞都知道,Mysql直接可以dos中进行操作,依赖一些dos指令就可以了完成对于数据库的操作,简单,快捷方便,但是对于刚刚入门的小白,真是痛苦不行啊。每一次的使用,都是漫长百度搜索过程,可是这样太耽误工作的进行。感谢Navicat的开发者!为小白带来了福利! 首先说...原创 2016-08-14 20:18:22 · 14495 阅读 · 21 评论 -
【数据库】——drop、delete、truncate比较
【前提】 话说小编最近在做的系统运维,个人感觉这个系统最强大部分必须是业务逻辑方面,几张表联系在一起,让小编还是非常感叹做系统人员的能力,当然在做的过程中,发现一些sql语句脚本。其中涉及到最多的就是清空记录的问题了,觉得无非就是个delete的问题,没想到还是非常值得研究的!下面小编主要分享一下自己知道的内容。 【如何使用】 Drop:删除数据库或数据表,或删除数据表字段。 删除数原创 2016-06-26 14:04:30 · 1233 阅读 · 28 评论 -
【数据库】——MySQL错误1067和1045解决方案
前提 小编最近的一个项目中需要用到MySQL,对于一个一清二白的小白,MySQL更是第一次接触,从安装开始一步一步学习啊。当然在这个安装过程遇到一些来分享一下,希望可以帮到大家。 PS:本文所有的解决方案都是在window系统下进行的。错误一 —— 1067Windows服务无法启动wampmysqld服务 对于MySQL不是经常使用的人群,关于MySQL的服务我们可以采用随用随开,避原创 2016-05-20 11:18:39 · 1533 阅读 · 36 评论