文章分类 - mysql
摘要:在数据库的锁机制中介绍过,数据库管理系统(DBMS)中的并发控制的任务是确保在多个事务同时存取数据库中同一数据时不破坏事务的隔离性和统一性以及数据库的统一性。 乐观并发控制(乐观锁)和悲观并发控制(悲观锁)是并发控制主要采用的技术手段。 无论是悲观锁还是乐观锁,都是人们定义出来的概念,可以认为是一种
阅读全文
摘要:传统的分库分表都是在应用层实现,拆分后都要对原有系统进行很大的调整以适应新拆分后的库或表,比如实现一个SQL中间件、原本的联表查询改成两次查询、实现一个全局主键生成器等等。 而下面介绍的MySQL分区表是在数据库层面,MySQL自己实现的分表功能,在很大程度上简化了分表的难度。 介绍 对用户来说,分
阅读全文
摘要:索引并不是时时都会生效的,比如以下几种情况,将导致索引失效: 1.如果条件中有or,即使其中有条件带索引也不会使用(这也是为什么尽量少用or的原因) 注意:要想使用or,又想让索引生效,只能将or条件中的每个列都加上索引 2.对于多列索引,不是使用的第一部分,则不会使用索引 3.like查询是以%开
阅读全文
摘要:如果我们创建了(area, age,salary)的复合索引,那么其实相当于创建了: (area,age,salary),(area,age)、(area)三个索引,这被称为最佳左前缀 特性。因此我们在创建复合索引时应该将最常用作限制条件的列放在最左边,依次递减。 例: select * from
阅读全文
摘要:网上有很多的文章教怎么配置MySQL服务器,但考虑到服务器硬件配置的不同,具体应用的差别,那些文章的做法只能作为初步设置参考,我们需要根据自己的情况进行配置优化,好的做法是MySQL服务器稳定运行了一段时间后运行,根据服务器的”状态”进行优化。 mysql> show global status;
阅读全文
摘要:MySQL类型关键字后面的括号内指定整数值的显示宽度(例如,INT(11))。该可选显示宽度规定用于显示宽度小于指定的列宽度的值时从左侧填满宽度。显示宽度并不限制可以在列内保存的值的范围,也不限制超过列的指定宽度的值的显示。 所以INT(1)和INT(11)默认是没有任何区别的!!! 当结合可选扩展
阅读全文
摘要:我在配置MySQL时将配置文件中的默认存储引擎设定为了InnoDB。今天查看了MyISAM与InnoDB的区别,在该文中的第七条“MyISAM支持GIS数据,InnoDB不支持。即MyISAM支持以下空间数据对象:Point,Line,Polygon,Surface等。”作为一个地理信息系统专业的学
阅读全文
摘要:Select * 不利于优化 在 字段较少时 select 字段 基本无差别 Sql语句 尤其是where中尽量少用函数 因为可能导致索引不可用 尽量少用like 尽量用like% 固定值可以用索引 不固定值用不到索引 基本表中加统计字段可以减少使用group by 和 order by 增加索引的
阅读全文
摘要:一、数学函数ABS(x) 返回x的绝对值BIN(x) 返回x的二进制(OCT返回八进制,HEX返回十六进制)CEILING(x) 返回大于x的最小整数值EXP(x) 返回值e(自然对数的底)的x次方FLOOR(x) 返回小于x的最大整数值GREATEST(x1,x2,...,xn)返回集合中最大的值
阅读全文
摘要:explain显示了mysql如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。 使用方法,在select语句前加上explain就可以了,如: explain列的解释table:显示这一行的数据是关于哪张表的 type:这是重要的列,显示连接使用了何种类型
阅读全文
摘要:由于mysql的索引有最左原则 在有范围查询时如果范围查询的字段有索引且在索引的最左边则其后的索引不再执行,所以应该把常用键的范围查询的索引放在最后面 组合查询的最前面的键 在查询单个键是也会用到 查询是否用索引可以用explain
阅读全文
摘要:在数据库表中,对字段建立索引可以大大提高查询速度。假如我们创建了一个 mytable表: 复制代码 代码如下: CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL ); 我们随机向里面插入了10000条记录,其中有
阅读全文
摘要:页级:引擎 BDB。表级:引擎 MyISAM , 理解为锁住整个表,可以同时读,写不行行级:引擎 INNODB , 单独的一行记录加锁 表级,直接锁定整张表,在你锁定期间,其它进程无法对该表进行写操作。如果你是写锁,则其它进程则读也不允许行级,,仅对指定的记录进行加锁,这样其它进程还是可以对同一个表
阅读全文
摘要:SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的。低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销。Read Uncommitted(读取未提交内容) 在该隔离级别,所有事务都可以看到其他未提交事务的执行结果。本隔离级别很少用于实际应用,
阅读全文