1. 首页
  2. 资讯

sql创建数据库

SQL数据库如何优化?面试的时候经常会文档一些SQL方面的问题,比较常见的面试题例如“什么时候回造成索引失效?”,又或者“你经常做的SQL优化的工作有哪些?”下面,我就介绍几个有关S

SQL数据库如何优化?

面试的时候经常会文档一些SQL方面的问题,比较常见的面试题例如“什么时候回造成索引失效?”,又或者“你经常做的SQL优化的工作有哪些?”


下面,我就介绍几个有关SQL优化的知识点。


  • 负向条件查询不能使用索引:包括!=、not in、not exists都尽量不要使用;

  • %在前面的模糊查询:where name like '%xxx';

  • 等号左边有函数:where upper(str) = '...',就算str字段有索引,这个写法也不会走索引;

  • 数据区分度不大的字段,不要建索引:例如性别男、女、为止,这种就不适合建立索引;

  • 隐式转换:where tel = 13800000000,如果tel字段是varchar类型,这个写法不会报错,但是会索引失效;

  • 只返回需要的数据:select name,gender from users 优于 select * from users;

  • 允许为Null的列,有风险:比如 where name != 'Tom',如果name允许为Null,索引不储存Null值,结果集不包含这些记录;因为索引不存储Null值,所以is null也不会走索引;

  • 如果业务大部分是单条记录查询,那么Hash索引效率更高

  • 复合索引最左前缀:(name,gender)复合索引,where name=xx and gender =x 可以命中,where name=xx可以命中,where gender =x不能命中。


我会持续分享Java程序开发、架构设计、职业发展等方面的知识和见解,希望能得到你的关注今日头条,转载请注明出处。

如何用sql语言搭建英语阅读数据库?

首先sql语句不能用来搭建数据库,SQL(Structured Query Language)指的是结构化查询语言的简称,

它是一种关于数据的编程语言,也是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。

现在主流的数据库有关系数据库(Relational Database),如Oracle、MySQL、SQLServer等。

还有NoSQL数据库(NoSQL,泛指非关系型的数据库):如HBase、Redis、MongoDB等


如果你的数据量小的话,建议你可以搭建关系型数据库,这个可以满足你的需求。而且关系型数据库使用优秀的SQL语言可以完成

很多操作,


如果你的数据量大的话,建议你使用NoSQL数据库,像HBase数据库就是一门面向列的数据库,使用起来很快,很好。


希望能帮到你!!!

都说自学SQL数据库难,是真的吗?

只要有兴趣,一点也不难,就算一天只学并掌握两个命令,一个月就差不多就上中等水平了。兴趣是第一原动力

sql数据库为什么会经常锁表?

真相只有一个!你的设计太水了。。

我在有一个问题《数据库什么时候会死锁》的回答中提到了,数据库为了保证数据的一致性,防止并发对数据正确性的影响,通常会使用加锁的方式!

而一共有表级锁,行级锁和页面锁三种锁粒度,锁又有共享锁(通常用于读数据)和独占锁(通常用于写数据)等的区分!

关于数据库锁机制发生死锁的原因,请参考我的那篇回答,回到这个提问上来,为什么数据库经常锁表?

锁表的意思很明显,就是表数据被锁,导致其他事务访问不到表中的数据!可能原因有哪些呢?

1,字段不加索引:在执行事务的时候,如果表中没有索引,会执行全表扫描,如果这时候有其他的事务过来,就会发生锁表!

2,事务处理时间长:事务处理时间较长,当越来越多事务堆积的时候,会发生锁表!

3,关联操作太多:涉及到很多张表的修改等,在并发量大的时候,会造成大量表数据被锁!

出现锁表应该怎么解决呢?

1,通过相关的sql语句可以查出是否被锁定,和被锁定的数据!

2,为加锁进行时间限定,防止无限死锁!

3,加索引,避免全表扫描!

4,尽量顺序操作数据!

5,根据引擎选择合理的锁粒度!

6,事务中的处理时间尽量短!

生产中出现死锁等问题是比较严重的问题,因为通常死锁没有明显的错误日志,只有在发现错误的时候才能后知后觉的处理,所以,一定要尽力避免!

由于篇幅原因,就不再赘述,改天再写下数据库锁的机制和死锁原因和解决方案,敬请关注。。

本文来自投稿,不代表本站立场,如若转载,请注明出处。