
数据库
LiQiyaoo
技术改变生活。
展开
-
MySQL数据库字符集详解(适合初学者)
MySQL数据库字符集问题1.查看mysql所支持的字符集指令:SHOW CHARACTER SET;很多很多,这里就不全部放上来了,这里的charset代表字符集,就是编码对应字符的集合,后面的collation代表了字符序,字符序就是每种不同的字符集在比较时采用的不同的方法。只要表上有的字符集,就可以被我们采用。2.当前关于mysql的各种字符集指令:SHOW VA原创 2016-12-08 22:06:26 · 5391 阅读 · 0 评论 -
SQL基础之模式与表
一、模式(Schema)的概念当我刚学到模式这个概念时,特别不理解。其实,schema就是把数据库分成许多集合,每个集合包含了各种对象,如:表、视图、储存过程和索引等。不同的集合有不同的名字,默认情况下用户名就是模式名。如果把一个数据库看成是一个幢楼,大楼里面的每个房间就是一个模式,而房间里面的各种物品就是表、索引等。这样解释,应该比较容易理解。二、定义模式原创 2017-04-14 08:14:10 · 2117 阅读 · 0 评论 -
PreparedStatement预编译无法用?占位符替换表名和字段名
PreparedStatement是Statement的改良版,具有预编译功能,方便使用,运行速度快。可以通过?占位符把字段值替换,之后通过setXXX方法,注入字段值。但是?占位符只能替换字段值,不能替换表名、字段名或者其他关键词。原创 2017-04-29 09:11:53 · 7036 阅读 · 0 评论 -
数据库设计优化(来自十年经验架构师的课堂)
昨天听了一节公开课,上课的人是一个有十年左右开发经验的架构师,讲的是数据库的设计优化以及SQL语句优化,讲的很浅显易懂,在这里先把数据库设计优化分享给大家。1.适度违反范式。如果严格遵循三大范式,会导致在查询时经常需要连接许多表,查询效率降低,可以结合业务要求,适当的做冗余。2.适度的建立索引。索引加快某些字段的查询效率,但是更新操作速度会降低,会占用储存空间。索引建立的规则:原创 2017-05-07 09:20:09 · 2151 阅读 · 1 评论 -
SQL语句优化(来自十年经验架构师的课堂)
昨天分享了数据库设计优化,今天来分享一下更有用的SQL语句优化。1. 使用慢日志,explain记录那些查询很慢的SQL语句。2. 避免全表扫描,考虑在WHERE和ORDER BY中使用到的列建立索引3. 尽量避免在WHERE子句中使用NULL值判断,这样会使DBMS放弃使用索引进行全表扫描,可以设计不影响业务的默认值.4. 尽量避免在WHERE子句中使用 != 或=,betw原创 2017-05-08 17:40:26 · 573 阅读 · 1 评论 -
SQL中LIKE '%' 与 PreparedStatement的占位符 ? 使用方法
LIKE name='%xxx%'是SQL提供的一种模糊查询方式,用%号代替任意字符。PreparedStatement是Java提供的一种包含预处理的数据库连接查询方式,这种方式很方便,可以通过如下代码做查询:PreparedStatement pstm = connection.prepareStatement("SELECT * FROM t1 WHERE name=?");问号就是占位原创 2017-04-27 19:04:18 · 6233 阅读 · 0 评论 -
最通俗易懂的乐观锁与悲观锁原理及实现
一、乐观锁 总是认为不会产生并发问题,每次去取数据的时候总认为不会有其他线程对数据进行修改,因此不会上锁,但是在更新时会判断其他线程在这之前有没有对数据进行修改,一般会使用版本号机制或CAS操作实现。 version方式:一般是在数据表中加上一个数据版本号version字段,表示数据被修改的次数,当数据被修改时,version值会加一。当线程A要更新数据值时,在读取数据的同时也会读取version...原创 2018-02-09 15:28:04 · 105268 阅读 · 17 评论 -
数据库面试题
1、数据库有哪些索引?根据功能分类唯一索引(Unique):可单列也可多列组合,每个索引值对应唯一的记录,且索引的字段具有唯一性,最多只能有一个NULL。主键索引(Primary Key):可单列也可多列组合,其值唯一标识表中的一行,不能为NULL。聚集索引(Cluster):一个表只能包含一个聚集索引,表中行的物理顺序与键值的逻辑顺序相同,加快查询速度。根据实现方式分类B+树索引:平衡的树,不一...原创 2018-03-16 13:46:07 · 700 阅读 · 0 评论