mysql 索引index和normal有什么区别

mysql 索引index和normal有什么区别,第1张

主要有这些:

primary,

index,

unique

这3种是一类

primary

主键。

就是

唯一

不能为空。

index

索引,普通的

unique

唯一索引

不允许有重复。

fulltext

是全文索引,用于在一篇文章中,检索文本信息的。

先正面回答你的问题数据是否重复不是建立索引的重要依据,甚至都不是依据。只要不完全重复(所有元组的该元素都一样),那么建立索引就是有意义的。即使当前数据完全重复,也不是不能建立索引,这种情况有点复杂,不细说了。对于你后面的疑问,可以给你一个如何建立索引的忠告,“如何查就如何建”。索引的建立,唯一的原因就是为了查询(广义的查询),实际上建立索引会使得数据存储所占空间变大,有时索引所占的空间会查过数据本身的空间。索引的建立也会使得数据插入时变慢,特殊情况下,慢的难以忍受,所以DBA的重要工作之一,就是检查索引层级并优化。索引建立的唯一好处,就是按照索引查询时,变快了。type,status这2个字段是否适合建立索引,就要看你是否要按照这2个字段进行检索。而检索的顺序决定了如何建立索引。对于索引类型和索引方式,我建议就 Normal 和 BTREE 就适用于大多数情况。若你参与的是一个大数据处理项目,对数据存储和检索有特别要求,那么需要分析多个层面,比如数据吞吐量、数据的方差、平均差等等很多参数才考虑是否用聚集索引等(mysql好像还没聚集索引),至于是否是唯一索引,我建议不使用,即使能判定数据是唯一的也不要用,全文索引也没有必要。

启动mysql时报错的解决(mysql 5.0.45 redhat as 43)

启动mysql时报错:

Starting mysqld daemon with databases from /var/lib/mysql

STOPPING server from pid file /var/run/mysqld/mysqld.pid

071112 00:22:06 mysqld ended

查看日志:

#less /var/log/mysqld.log

其中有一段如下:

071112 0:22:06 [ERROR] /usr/local/mysql/bin/mysqld: Can't create/write to file '/var/run/mysqld/mysqld.pid' (Errcode: 2)

071112 0:22:06 [ERROR] Can't start server: can't create PID file: No such file or directory

071112 00:22:06 mysqld ended

#cd /var/run/

#ls

mysqld目录不存在,创建它:

#mkdir /var/run/mysqld

#cd /var/run/mysqld

创建文件mysqld.pid:

#touch mysqld.pid

#cd..

#chown -R mysql mysqld .

#cd /usr/local/mysql/

#bin/mysqld_safe --user=mysql &

nohup: ignoring input and redirecting stderr to stdout

Starting mysqld daemon with databases from /var/lib/mysql

能正常启动

#bin/mysqladmin -u root password root

又出错

[root@localhost mysql]# bin/mysqladmin -u root password root

bin/mysqladmin: connect to server at 'localhost' failed

error: 'Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)'

Check that mysqld is running and that the socket: '/tmp/mysql.sock' exists!

[root@localhost mysql]# bin/mysql -u root -p

Enter password:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

分析:是/tmp/mysql.sock 不存在

# cd /var/lib/mysql/

由于mysql 默认的mysql.sock 是在/var/lib/mysql/mysql.sock,创建符号连接:

# ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock

# bin/mysql -u root

Welcome to the MySQL monitor. Commands end with or g.

Your MySQL connection id is 1

Server version: 5.0.45 MySQL Community Server (GPL)

Type 'help' or 'h' for help. Type 'c' to clear the buffer.

mysql>

修改root 密码

#cd /usr/local/mysql/

#bin/mysqladmin -u root -p password yourpassword


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7244372.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-03
下一篇 2023-04-03

发表评论

登录后才能评论

评论列表(0条)

保存