taoCMS是基于php+sqlite/mysql的国内最小(100Kb左右)的功能完善、开源免费的CMS管理系统

mysql innodb间隙锁示例

innodb的记录锁介绍原文见 http://dev.mysql.com/doc/refman/5.1/en/innodb-record-level-locks.htmlinnodb的记录锁有三种类型:记录锁:是加在索引记录上的。间隙锁:对索引记录间的范围加锁,或者加在最后一个索引记录的前面或者后面Next-key锁:记录锁和间隙锁的组合,间隙锁锁定记录锁之前的范围间隙锁主要是防止幻象读,用在Repeated-Read(简称RR)隔离级别下。在Read-Commited(简称RC)下,一般没有间隙锁(有外键情况下例外,此处不考虑)。间隙锁还用于statement based replication间隙锁有些副作用,如果要关闭,一是将会话隔离级别改到RC下,或者开启 innodb_locks_unsaf
发布时间:2015-06-09 | 类别:技术文章 | 阅读:207864 | 评论:1062 | 标签:mysql mysql mysql

Locks Set by Different SQL Statements in InnoDB

A locking read, an UPDATE, or a DELETE generally set record locks on every index record that is scanned in the processing of the SQL statement. It does not matter whether there are WHERE conditions in the statement that would exclude the row. InnoDB does not remember the exact WHERE condition, but only knows which
发布时间:2015-06-09 | 类别:技术文章 | 阅读:233875 | 评论:309 | 标签:mysql mysql

MySQL事务隔离级别详解

  SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的。低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销。Read Uncommitted(读取未提交内容)       在该隔离级别,所有事务都可以看到其他未提交事务的执行结果。本隔离级别很少用于实际应用,因为它的性能也不比其他级别好多少。读取未提交的数据,也被称之为脏读(Dirty Read)。Read Committed(读取提交内容)       这是大多数数据库系统的默认隔离级别(但不是MySQL默认的)。它满足了隔离的简单定义:一个事务只能看见已经提交事务所做的改变
发布时间:2015-06-09 | 类别:技术文章 | 阅读:288615 | 评论:0 | 标签:mysql mysql

使MySQL查询区分大小写的实现方法

被坑了…记录下。。。我们在MySQL中使用SELECT语句查询时,可不可以使查询区分大小写?今天从网络上找到了方法,现总结如下。1、一种方法是可以设置表或行的collation,使其为binary或case sensitive。在MySQL中,对于Column Collate其约定的命名方法如下: *_bin: 表示的是binary case sensitive collation,也就是说是区分大小写的 *_cs: case sensitive collation,区分大小写 *_ci: case insensitive collation,不区分大小写 ########### # Start binary collation example ###
发布时间:2014-09-26 | 类别:未分组 | 阅读:234515 | 评论:0 | 标签:mysql

InnoDB引擎数据表压缩特性测试

一、前言Innodb Plugin引擎开始引入多种格式的行存储机制,目前支持:Antelope、Barracuda两种。其中Barracuda兼容Antelope格式。另外,Innodb plugin还支持行数据压缩特性,不过前提是采用Barracuda行存储格式。表空间启用压缩的前提是innodb表空间文件存储格式修改成:Barracuda,需要修改2个选项:innodb_file_format = "Barracuda"innodb_file_format_max = "Barracuda"下面是对比测试结果二、表空间压缩比1. 某项目数据表压缩比2.1 数据表tabA压缩之前-rw-rw---- 1 mysql mysql 19038208 Mar 21 13:59
发布时间:2014-03-14 | 类别:技术文章 | 阅读:230991 | 评论:4 | 标签:mysql mysql

MySQL存储过程详解

mysql存储过程详解1.     存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(StoredProcedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。一个存储过程是一个可编程的函数,它在数据库中创建并保存。它可以有SQL语句和一些特殊的控制结构组成。当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是非常有用的。数据库中的存储过程可以看做是对编程中面向对象方法的模拟。它允许控制数据的访问方式。存储过程通常有以下优点:(1).存储过程增强了SQL语言的功能和灵活性。存储过程可以用流
发布时间:2014-03-12 | 类别:技术文章 | 阅读:211536 | 评论:0 | 标签:mysql mysql

mysql中查看数据库中所有表的记录数

如果使用mysql的版本在5.0及以上,可以通过查询information_schema库中的tables表来获取,该表中使用table_rows记录表的行数信息。例如查看库testdb中所有表的记录数:  代码如下复制代码 use information_schema;select table_name,table_rows from tableswhere TABLE_SCHEMA = 'testdb'order by table_rows desc; 不过需要注意的是,对于InnoDB表,table_rows行计数仅是大概估计值。另外一种办法还是借助information_schema库的tables表,来拼接出一个条sql语句,例如:  代码如下复制代码 use i
发布时间:2013-11-16 | 类别:技术文章 | 阅读:248938 | 评论:0 | 标签:mysql

Mysql服务器安装后要调整什么?

Mysql服务器安装完后的参数调整以及如何优化Mysql性能,直接使用默认的my.cnf参数,当然在大多数情况下是没有问题的。想要通过调整参数获得性能上的提升以及资源的合理利用,请关注下面这几个参数:key_buffer_size这个参数对于MyISAM引擎来说是非常重要的,如果你的服务器主要是用MyISAM引擎的,建议将该值设置为内存的30%-40%.很多优化工具是把系统当前的索引总大小计算得出的一个值,需要注意的是该值只缓存索引数据,而MyISAM使用操作系统页面缓存来缓存元数据,所以你要预留出足够的内存空间给OS级缓存,当然这个指不是越大越好,一般如果索引将近1G的时候可以分配4G左右的key_buffer_size,再多就浪费了,如果你的数据库只是少量的表使用到MyISAM可以将该值保持在16-32M,
发布时间:2013-09-13 | 类别:技术文章 | 阅读:273057 | 评论:0 | 标签:mysql

MySQL索引背后的数据结构及算法原理

来源:张洋摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂不讨论。文章主要内容分为三个部分。第一部分主要从数据结构及算法理论层面讨论MySQL数据库索引的数理基础。第二部分结合MySQL数据库中MyISAM和InnoDB数据存储引擎中索引的架构实现讨论聚集索引、非聚集索引及覆盖索引等话题。第三部分根据上面的理论基础,讨论MySQL中高性能使用索引的策略。数据结构及算法基础索引的本质MySQL官方对索引的定义为:索
发布时间:2013-08-18 | 类别:技术文章 | 阅读:209554 | 评论:0 | 标签:mysql mysql

对mysql日志进行操作的总结包括 启用,过期自动删除 等

近段时间一直在研究mysql的日志系统,在网上看了N多mysql日志操作的文章,但都过于零乱,为了让自己以后不再搞忘,特作出以下总结:   1. 以前我错误的认为mysql的日志可以恢复到任何时间的状态,其实并不是这样,这个恢复是有前提的,就是你至少得有一个从日志记录开始后的数据库备份,通过日志恢复数据库实际上只是一个对以前操作的回放过程而已,不用想得太复杂,既然是回放你就得注意了,如果你执行了两次恢复那么就相当于是回放了两次,后果如何你自己应该清楚了吧。   2. 要想通过日志恢复数据库,在你的my.cnf文件里应该有如下的定义,log-bin=mysql-bin,这个是必须的.binlog-do-db=db_test,这个是指定哪些数据库需要日志,
发布时间:2013-07-26 | 类别:技术文章 | 阅读:216463 | 评论:0 | 标签:mysql

公告

taoCMS发布taoCMS 3.0.2(最后更新21年03月15日),请大家速速升级,欢迎大家试用和提出您宝贵的意见建议。

捐助与联系

☟请使用新浪微博联系我☟

☟在github上follow我☟

标签云