
*数据库
文章平均质量分 67
哈尼熊熊
当你的才华撑不起你的野心时,就静下心来好好学习!
展开
-
show processlist
SHOW PROCESSLIST显示哪些线程正在运行。您也可以使用mysqladmin processlist语句得到此信息。如果您有SUPER权限,您可以看到所有线程。否则,您只能看到您自己的线程(也就是,与您正在使用的MySQL账户相关的线程)。如果您不使用FULL关键词,则只显示每个查询的前100个字符。本语句报告TCP/IP连接的主机名称(采用host_name:client_port格式...转载 2017-06-19 10:51:59 · 278 阅读 · 0 评论 -
数据库事务的四大特性及事务的隔离级别
事务(Transaction)是并发控制的基本单位。所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。例如,银行转帐工作:从一个帐号扣款并使另一个帐号增款,这两个操作要么都执行,要么都不执行。1.数据库事务的四大特性(简称ACID):⑴ 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,因此事务的操作如果成功就必须要...转载 2018-03-13 10:57:22 · 294 阅读 · 0 评论 -
MySQL线程池
在传统方式下,MySQL线程调度方式有两种:每个连接一个线程(one-thread-per-connection)和所有连接一个线程(no-threads)。在实际生产中,一般用的是前者。即每当有一个客户端连接到MySQL服务器,MySQL服务器都会为该客户端创建一个单独的线程。连接数越多,则相应的线程会越多。如果大部分线程处于空闲状态,则不会对服务器的性能造成很大的影响。但如果同时执行的线程太多...转载 2018-03-23 17:57:36 · 671 阅读 · 0 评论 -
数据库高并发的处理--待写
待写。原创 2018-03-14 16:18:40 · 378 阅读 · 0 评论 -
MySQL wait_timeout sleep
前段时间 现网突然频繁报出 连接不上数据库,偶滴的妖孽,其他地方都是用mysql,也没遇到这个问题呀。在数据库服务器用 top 命令查看,1339 total 2 running 1337 sleeping场景出现的理论依据MySQL 的默认设置下,当一个连接的空闲时间超过8小时后,MySQL 就会断开该连接,而 c3p0/dbcp 连接池则以为该被断开的连接依然有原创 2018-04-08 14:16:35 · 561 阅读 · 0 评论 -
MySQL主从复制
1、什么是主从复制1、主从的作用2、主从的原理3、从数据库的读的延迟问题了解吗?如何解决?4、做主从后主服务器挂了怎么办?一、什么是主从复制?主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库;主数据库一般是准实时的业务数据库。二、主从复制的作用(好处,或者说为什么要做主从)重点!1、架构的扩展。业务量越来越大,I/O访问频率过高,单机无法满足,此时做多库的存储,物理服务器增加,...原创 2018-04-08 17:53:52 · 442 阅读 · 0 评论 -
MySQL请求处理过程
1.客户端发送SQL请求给服务器2.服务器检查是否可以在查询缓存中命中该SQL3.服务器端进行SQL解析,预处理,再由优化器生成对应的执行计划 这个阶段包括多个子过程:解析SQL,预处理,优化SQL执行计划4.根据执行计划,调用存储引擎API来查询数据。5.将结果返回到客户端。...原创 2018-03-26 18:08:46 · 880 阅读 · 0 评论 -
MySQL索引
索引概念索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引用于快速找出在某个列中有一特定值的行,不使用索引,MySQL必须从第一条记录开始读完整个表,直到找出相关的行,表越大,查询数据所花费的时间就越多,如果表中查询的列有一个索引,MySQL能够快速到达一个位置去搜索数据文件,而不必查...原创 2018-04-09 18:32:33 · 403 阅读 · 0 评论 -
查询优化神器 – explain命令
关于explain命令相信大家并不陌生,具体用法和字段含义可以参考官网explain-output,这里需要强调rows是核心指标,绝大部分rows小的语句执行一定很快。所以优化语句基本上都是在优化rows。1. 慢查询优化基本步骤1. 先运行看看是否真的很慢,注意设置SQL_NO_CACHE2. where条件单表查,锁定最小返回记录表。这句话的意思是把查询语句的where都应用到表中返...原创 2018-04-09 18:34:14 · 625 阅读 · 0 评论 -
数据库优化1
数据库服务优化总方案方案一:增加单机性能单机到底性能能够增加到一个什么程度,这取决于你的机器配置,也取决于你的服务到底有多复杂。那么常见的单机如何提升性能?比如:增加不常变化数据的缓存,开启php的opcache,优化代码(如:n+1问题、多重嵌套循环、深层递归等),db表优化等等。由于这些每一个点拿出来都够写一本书了。咋就不继续下去。方案二:上机器个人的能力是有限的,团队的力量是无穷的。既然一台...原创 2018-03-29 15:56:31 · 192 阅读 · 0 评论 -
MySQL中的枚举
枚举的数学定义:在数学和计算机科学理论中,一个集的枚举是列出某些有穷序列集的所有成员的程序,或者是一种特定类型对象的计数。这两种类型经常(但不总是)重叠。 [1] 是一个被命名的整型常数的集合,枚举在日常生活中很常见,例如表示星期的SUNDAY、MONDAY、TUESDAY、WEDNESDAY、THURSDAY、FRIDAY、SATURDAY就是一个枚举。枚举在MySQL中:ENUM...转载 2018-07-30 18:04:09 · 4537 阅读 · 0 评论 -
数据库设计之用户
RBAC(Role-Based Access Control,基于角色的访问控制)就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,用户与角色之间,角色与权限之间,一般者是多对多的关系。RBAC的基本思想是:授权给用户的访问权限,通常由用户在一个组织中担当的角色来确定。RBAC中许可被授权原创 2018-03-13 10:18:25 · 1322 阅读 · 0 评论 -
数据库优化2
MySQL的优化主要分为结构优化和查询优化。1. 数据类型优化1) 数据类型更紧凑一般情况下,应该尽量使用可以正确存储数据的最小数据类型。更小的数据类型通常更快,因为它们占用更少的磁盘、内存和CPU缓存,并且处理时需要的CPU周期也更少。2) 简单就好简单数据类型的操作通常需要更少的CPU周期。例如,整形比字符串操作代价更低,用MySQL内建的类型而不是字符串老存储时间和日期。3) 尽量避免nu...原创 2017-11-21 17:54:13 · 275 阅读 · 0 评论 -
记一次Waiting for table metadata lock
MySQL数据库表锁等待;原创 2017-06-19 14:14:12 · 447 阅读 · 0 评论 -
新建MySQL数据库的注意事项
前置:登录MySQL管理后台:http://localhost/phpmyadmin/1. root 用户的密码不能在 myphpadmin 面板里面的修改密码。 root 用户权限比较特殊,修改密码时会同时修改几个表,需要用 sql 语句来修改。仅仅在myphpadmin 面板里面的修改密码是不够的,不仅修改不成功,恢复起来也非常麻烦。2:忘记root密码 以wi...原创 2017-07-21 13:28:13 · 665 阅读 · 0 评论 -
MySQL命名规范
一、【操作规范】1. 如无备注,则表中的第一个id字段一定是主键且为自动增长;2. 如无备注,则数值类型的字段请使用UNSIGNED属性;3. 如无备注,排序字段order_id在程序中默认使用降序排列;4. 如无备注,所有字段都设置NOT NULL,并设置默认值;5. 如无备注,所有的布尔值字段,如is_hot、is_deleted,都必须设置一个默认值,并设为0;6.转载 2017-07-25 10:10:35 · 377 阅读 · 0 评论 -
mysql中timestamp,datetime,int类型的区别与优劣
前置介绍:字节1字节=8位 bit1字节从00000000到11111111只能表示256个字符,2字节可以表示65535个字符。int(时间戳)1. 占用4个字节2. 建立索引之后,查询速度快3. 条件范围搜索可以使用使用between4. 不能使用mysql提供的时间函数结论:适合需要进行大量时间范围查询的数据表datetime1. 占用8个字节2. 允许为空值...转载 2017-07-25 11:46:22 · 358 阅读 · 0 评论 -
缓存 - memcache redis
MemcacheMemcached是一个自由开源的,高性能,分布式内存对象缓存系统。本质上,它是一个简洁的key-value存储系统。memcached的缓存失效策略是LRU(最近最少使用)加上到期失效策略。Memcache 的限制和特性1、MemCache中可以保存的item数据量是没有限制的,只要内存足够2、MemCache单进程在32位机中最大使用内存为2G,64位机则没有限制3、Key最大...原创 2017-10-31 18:04:38 · 291 阅读 · 0 评论 -
缓存
1. 基本知识 1. 前提:访问频繁且较少变更的数据才适合做缓存2. 缓存方案的确定 1. 首先明确是不是一定要上缓存,当前架构的瓶颈在哪里,若瓶颈真是数据库操作上,再继续往下看。 2. 搞明白应用场景,明确memcached和redis的区别,到底要使用哪个。前者终究是个缓存,不可能永久保存数据(LRU机制),支持分布式,后者除了缓存的同时也支持把数据持久化到磁盘等,r...原创 2017-10-30 17:42:21 · 315 阅读 · 0 评论 -
MySQL存储引擎
同Oracle 和SQL Server等大型数据库系统一样,MySql也是客户/服务器系统并且是单进程多线程架构的数据库。什么是存储引擎 存储引擎说白了就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。 在Oracle 和SQL Server等数据库中只有一种存储引擎,所有数据存储管理机制都是一样的。而MySql数据库提供了多种存储引擎。用户可以根据不同的...原创 2017-11-04 13:53:30 · 461 阅读 · 0 评论 -
数据库设计注意点
1. 设计数据库之前 1. 在物理实践之前进行逻辑设计 在深入物理设计之前要先进行逻辑设计。随着大量的 CASE 工具不断涌现出来,你的设计也可以达到相当高的逻辑水准,你通常可以从整体上更好地了解数据库设计所需要的方方面面。 2. 创建数据字典和 ER 图表 一定要花点时间创建 ER 图表和数据字典。其中至少应该包含每个字段的数据类型和在每个表...原创 2017-11-21 15:52:45 · 543 阅读 · 0 评论 -
PHP框架数据库操作
基本上成熟的PHP框架对数据库操作的处理大致相同:1. SQL原生操作;2. 查询构造器; 数据库查询构造器提供了一个方便的接口来创建及运行数据库查询语句。它能用来执行应用程序中的大部分数据库操作,且能在所有被支持的数据库系统中使用。如支持,where(),select(),join()等操作,相对于SQL原生操作带来了很大方便性。3. Active Record 操作;...原创 2018-07-31 10:47:47 · 1171 阅读 · 0 评论