随笔分类 -  MySQL数据库

摘要:1.修改配置文件sudo vim /etc/mysql/my.cnf把bind-address参数的值改成你的内/外网IP或0.0.0.0,或者直接注释掉这行. 2.登录数据库mysql -u root -p 输入密码mysql> use mysql; 3.查询hostmysql> select u 阅读全文
posted @ 2017-09-12 11:58 chenjiacheng 阅读(253) 评论(0) 推荐(0)
摘要:当您的库中删除了大量的数据后,您可能会发现数据文件尺寸并没有减小。这是因为删 除操作后在数据文件中留下碎片所致。Discuz! 在系统数设置界面提供了数据表优化的功能,可以去除删除操作后留下的数据文件碎片,减小文件尺寸,加快未来的读写操作。您只要在做完批量删除,或定期(如 每一两个月)进行一次数据表 阅读全文
posted @ 2017-07-13 15:55 chenjiacheng 阅读(558) 评论(0) 推荐(0)
摘要:-- 查看那些表锁到了 show OPEN TABLES where In_use > 0; -- 查看进程号 show processlist; -- 删除进程 kill 1085850; 阅读全文
posted @ 2017-07-12 10:51 chenjiacheng 阅读(465) 评论(0) 推荐(0)
摘要:select IF(sex = 1, '男', '女') as sex from ecs_users where user_id = 1; select CASE sex WHEN 1 THEN '男' ELSE '女' END as sex from ecs_users where user_id = 1; SELECT SUM(og.goods_number * IF(g.give_in... 阅读全文
posted @ 2017-06-23 17:42 chenjiacheng 阅读(328) 评论(0) 推荐(0)
摘要:数学函数 聚合函数(常用于GROUP BY从句的SELECT查询中) 下面五个函数会忽略值为NULL的行 字符串函数 日期和时间函数 加密函数 格式化函数 其中最简单的是FORMAT()函数,它可以把大的数值格式化为以逗号间隔的易读的序列。 数据类型转换函数 CAST()函数,将一个值转换为指定的数 阅读全文
posted @ 2017-06-23 17:40 chenjiacheng 阅读(548) 评论(0) 推荐(0)
摘要:1. 基本概念 基本概念:把一个表,从逻辑上分成多个区域,便于存储数据。 采用分区的前提:数据量非常大。 比如一个用户表,想分成4个区域,如何分呢? 用户的id 1到1000 分到 东区用户的id 1001到2000 分到 南区用户的id 2001到3000 分到 西区用户的id 大于3001的 分 阅读全文
posted @ 2017-04-08 14:49 chenjiacheng 阅读(276) 评论(0) 推荐(0)
摘要:在长期的数据更改过程中,索引文件和数据文件,都将产生空洞,形成碎片,我们可以通过一个nop操作(不产生对数据实质影响的操作)来修改表。 执行如下操作:delete from t9 where id=1; 操作完成后,数据应该减少三分之一才对。 执行完成该语句后,发现数据文件并没有减少三分之一,这样在 阅读全文
posted @ 2017-03-26 23:44 chenjiacheng 阅读(330) 评论(0) 推荐(0)
摘要:比如有如下操作: (1)从数据库中取出id的值 (2)把这个值加1 (3)在把该值存回到数据库 假如该id初始值为100,如果有两个用户同时操作。 第一个用户: 第二个用户: 经过两个用户操作数据库,值应该为102才对。 假如是一个购物网站,库存还剩1件,有两个用户同时购买1件商品。 mysql中的 阅读全文
posted @ 2017-03-14 15:49 chenjiacheng 阅读(220) 评论(0) 推荐(0)
摘要:limit offset,N 当offset非常大时,效率极低。 原因是:mysql并不是跳过offset行,然后单取N行。而是取offset+N行。 返回时,放弃前offset行,返回N行。效率较低,当offset越大是,效率越低。 优化方式: 1. 非技术手段限制分页,比如百度翻页一般不会超过7 阅读全文
posted @ 2017-03-12 21:53 chenjiacheng 阅读(425) 评论(0) 推荐(0)
摘要:索引覆盖是指:如果查询的列恰好是索引的一部分,那么查询只需要在索引文件上进行,不需要回行到磁盘再找数据,这种查询速度非常快,称为“索引覆盖” 索引覆盖就是,我要在书里 查找一个内容,由于目录写的很详细,我在目录中就获取到了,不需要再翻到该页查看。 如果在一个sql语句中,经常查询某些列,就可以把某些 阅读全文
posted @ 2017-03-08 18:05 chenjiacheng 阅读(1002) 评论(0) 推荐(0)
摘要:1. 全值匹配 条件字段使用“=” 2. 范围匹配(<= >= between and) 3. 独立的列 是指索引列不能是表达式的一部分,也不能是函数的参数 注意:要求索引的列必须是独立的一列才能用到索引。 4. 左值匹配 在使用like(模糊匹配)的时候,在左边没有通配符的情况下,才可以使用索引。 阅读全文
posted @ 2017-03-08 16:45 chenjiacheng 阅读(629) 评论(0) 推荐(0)
摘要:主要用于分析sql语句的执行情况(并不执行sql语句)得到sql语句是否使用了索引,使用了哪些索引。 在mysql之前的版本中,explain只支持select语句,但是在最新的5.6版本中,它支持 explain update/delete了。 做实验创建两张表: 一、语法分析 返回结果分析: 是 阅读全文
posted @ 2017-03-06 08:51 chenjiacheng 阅读(738) 评论(0) 推荐(0)
摘要:1. MyISAM引擎的索引 索引的节点中存储的是数据的物理地址(磁道和扇区) 在查找数据时,查找到索引后,根据索引节点中的物理地址,查找到具体的数据内容 2. InnoDB引擎的索引 innodb的主键索引文件上直接存放该行数据,称为聚簇索引,非主索引指向对主键的引用 myisam中,主索引和非主 阅读全文
posted @ 2017-02-22 12:48 chenjiacheng 阅读(2146) 评论(0) 推荐(0)
摘要:字符集 一、字符集基础知识 数据在计算机的最终存储一定是二进制: 但是计算机内部的存储都是字节为基本单位: 最小单位是位(bit)只有两个状态0或者1. 但是表示的数据太少, 计算机都是以字节为操作单位. 字符集: 字符的集合, 用户在计算机中所能看到的任何一个不可被拆分的符号.计算机不能存储图形符 阅读全文
posted @ 2016-12-23 22:51 chenjiacheng 阅读(389) 评论(0) 推荐(0)
摘要:1. 在精度要求高的应用中,建议使用定点数来存储数值,以保证结果的准确性。 要用decimal不要使用float 2. 录入手机号带来的问题 使用char(11)会占用较多的字节,gbk占用2字节*11,utf-8占用3*11。 可以使用bigint,宽度是20,只占用8个字节。 3. ip地址也可 阅读全文
posted @ 2016-12-05 14:19 chenjiacheng 阅读(192) 评论(0) 推荐(0)
摘要:索引的作用:是用于快速定位实际数据位置的一种机制。 索引在mysql中,是独立于数据的一种特殊的数据结构。 一、索引的分类 普通索引:利用特定的关键字,标识数据记录的位置(磁盘上的位置,盘号,柱面,扇面,磁道)。唯一索引:限制索引的关键字不能重复的索引。主键索引:限制索引的关键字不能重复,并且不能为 阅读全文
posted @ 2016-12-02 15:17 chenjiacheng 阅读(283) 评论(0) 推荐(0)
摘要:开始=>运行=>cmd,或者按住win键+r键输入cmd 假如 MySQL 安装在 D:\server\mysql 下 阅读全文
posted @ 2016-11-02 17:19 chenjiacheng 阅读(217) 评论(0) 推荐(0)
摘要:要分析的sql语句是执行速度比较慢的。查找执行速度比较慢的sql语句。找到后,具体分析。 一、慢查询日志 慢查询日志是一种mysql提供的日志,记录所有执行时间超过某个时间界限的sql的语句。这个时间界限,我们可以指定。在mysql中默认没有开启慢查询,即使开启了,只会记录执行的sql语句超过10秒 阅读全文
posted @ 2016-08-26 22:52 chenjiacheng 阅读(206) 评论(0) 推荐(0)
摘要:设计角度:存储引擎的选择,字段类型选择,范式。自身特性:索引,查询缓存,分区分表,存储过程,sql语句优化配置。架构体系:主从复制(读写分离)。硬件升级:CPU、内存等。 阅读全文
posted @ 2016-08-24 08:07 chenjiacheng 阅读(208) 评论(0) 推荐(0)
摘要:当前创建的临时表将在当前连接MySQL期间存在。当当前连接断开时,MySQL将自动删除表并释放所用的空间。当然可以在仍然连接的时候删除表并释放空间。创建临时表很容易,给正常的CREATE TABLE语句加上TEMPORARY关键字如果在创建名为linshi_table临时表时名为linshi_tab 阅读全文
posted @ 2016-05-13 17:52 chenjiacheng 阅读(978) 评论(0) 推荐(0)