查询条件中尽量出现有索引的列
如通过
NM like '%张三%' AND AGE = 20 AND 其他条件
查询时
这时NM列及时有索引也无效,也就是数据库会把用户表中所有行的NM列对比一次,也就是全表扫描,这时肯定非常慢
这时其他列上的索引就非常重要,如果AGE上有索引,数据库在执行LIKE对比前,会先把AGE=20的行筛选出来,这样就避免了全表扫描
会造成索引失效的条件:IN, N
windows10安装mysql8 由于找不到VCRUNTIME140.dll,无法继续执行代码问题解决
mysql5迁移到mysql8,主要涉及到编码问题。在mysql5中我们一般用字符集:utf8mb4 排序规则:utf8mb4_general_ci 但mysql8中默认的是字条集:utf8mb4 排序规则:utf8mb4_0900_ai_ci
#备份 mysqldump -P{端口} -u{账号} -p{密码} {数据库名} | gzip /usr/local/bak/{数据库名}.sql.gz #复制到目标机并解压 gzip -d {备份文件} #登录数据库 mysql -u {帐号} -p{密码} #切换数据库 use {数据库名} #执行还原 source {解压后的备份文件};
oracle创建dblink
1.应用场景:
现有两个数据库,一个是erp1,一个是erp2,现要通过dblink在erp1连接erp2。
2.先在erp1查看是erp1用户否拥有创建dblink权限。在erp1中执行
select * from user_sys_privs where privilege like upper('%DATABASE LINK%');
1、登录Linux操作系统,进入oracle用户 : su - oracle
2、输入:sqlplus / as sysdba
3、 进入sqlplus后就可以修改sys和system的密码了
alter user sys identified by "密码";
alt
shared memory realm does not exist
oracle not available
TNS:listener does not currently know of SID given in connect descriptor
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
设置完不需要重启,需要重新修改一遍密码;
alter user 帐号 identified by 密码;