前面说了,coreseek sphinx mmseg mysql等的安装,下面说一下怎么使用。 一,coreseek sphinx启动后,会多出一个端口,并且可以像mysql一样登录,但不是登录mysql [root@localhost tank]# mysql -h 127.0.0.1 -P 9306 //不是真的连接mysql,而连接了sphinx in
前面说了,coreseek sphinx mmseg mysql等的安装,下面说一下怎么使用。
一,coreseek sphinx启动后,会多出一个端口,并且可以像mysql一样登录,但不是登录mysql
[root@localhost tank]# mysql -h 127.0.0.1 -P 9306 //不是真的连接mysql,而连接了sphinx index Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 1.11-id64-dev (r2540) Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> select * from tank_test where match('坦克') ; //这种写法,根原装的sphinx不一样 +------+--------+------------+------+ | id | weight | user_id | u_id | +------+--------+------------+------+ | 3 | 2230 | 1311895260 | 62 | | 5 | 2230 | 1311895260 | 33 | | 4 | 1304 | 1311895262 | 0 | | 6 | 1304 | 1311895262 | 34 | +------+--------+------------+------+ 4 rows in set (0.00 sec) mysql> show META; //上次检索的信息 +---------------+-------+ | Variable_name | Value | +---------------+-------+ | total | 3 | | total_found | 3 | | time | 0.000 | | keyword[0] | test | | docs[0] | 3 | | hits[0] | 5 | +---------------+-------+ 6 rows in set (0.00 sec) mysql> show tables; //这里的表其实不是真表,也不是create table创建出来的,是sphinx索引 +--------------+-------------+ | Index | Type | +--------------+-------------+ | dist1 | distributed | | myorder | local | | rt | rt | | tank_test | rt | | test1 | local | | test1stemmed | local | +--------------+-------------+ 6 rows in set (0.00 sec)
二,创建sphinx索引
1,修改/usr/local/sphinx/etc/sphinx.conf
# vim /usr/local/sphinx/etc/sphinx.conf //添加以下内容 index tank_test { type = rt path = /usr/local/sphinx/var/data/rt charset_dictpath = /usr/local/mmseg3/etc/ charset_type = zh_cn.utf-8 ngram_len = 0 rt_field = name rt_field = title rt_field = sub_title rt_attr_uint = user_id rt_attr_uint = uid }
在这里要注意,rt_field是检索字段,rt_attr_uint是返回字段
2,重启sphinx
# pkill -9 searchd # /usr/local/sphinx/bin/indexer --config /usr/local/sphinx/etc/sphinx.conf --all # /usr/local/sphinx/bin/searchd --config /usr/local/sphinx/etc/sphinx.conf
3,插入数据,并查看
mysql> show tables; +--------------+-------------+ | Index | Type | +--------------+-------------+ | dist1 | distributed | | rt | rt | | tank_test | rt | //新增加的索引 | test1 | local | | test1stemmed | local | +--------------+-------------+ 5 rows in set (0.00 sec) mysql> desc tank_test; +-----------+---------+ | Field | Type | +-----------+---------+ | id | bigint | | name | field | | title | field | | sub_title | field | | user_id | integer | | u_id | integer | +-----------+---------+ 6 rows in set (0.00 sec) mysql> insert into tank_test values (3,'坦克','tank is 坦克','技术总监',1311895260,33); mysql> insert into tank_test values (4,'tank张','tank is 坦克','技术总监',1311895262,34); mysql> select * from tank_test where match('坦克'); //匹配搜索的字段是rt_field +------+--------+------------+------+ | id | weight | user_id | u_id | //返回的字段是rt_attr_uint +------+--------+------------+------+ | 3 | 2230 | 1311895260 | 33 | | 4 | 1304 | 1311895262 | 34 | +------+--------+------------+------+ 2 rows in set (0.00 sec)
id和weight是系统自带的返回字段
到这儿索引就创建好了,show tables的时候是可以看新建的tank_test,用phpmyadmin或者其他mysql数据库连接工具根本看不到,原因是他根本不是真实的表。sphinx到底能不能用真实的表呢?
三,创建表,并添加索引
1,创建真实的表,插入数据
CREATE TABLE IF NOT EXISTS `orders` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) NOT NULL , `username` varchar(20) NOT NULL, `create_time` datetime NOT NULL, `product_name` varchar(20) NOT NULL, `summary` text NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; INSERT INTO `orders` (`user_id` ,`username` ,`create_time` ,`product_name` ,`summary`) VALUES ('1311895262','张三','2014-08-01 00:24:54','tank is 坦克','技术总监'), ('1311895263','tank张二','2014-08-01 00:24:54','tank is 坦克','技术经理'), ('1311895264','tank张一','2014-08-01 00:24:54','tank is 坦克','DNB经理'), ('1311895265','tank张','2014-08-01 00:24:54','tank is 坦克','运维总监');
在这里要注意,是连接mysql的3306端口,不是连接coreseek sphinx的9306
2,修改/usr/local/sphinx/etc/sphinx.conf,添加以下内容
source order { type = mysql sql_host = localhost sql_user = root sql_pass = sql_db = test sql_query_pre = SET NAMES utf8 sql_query = \ SELECT id, user_id, username, UNIX_TIMESTAMP(create_time) AS create_time, product_name, summary \ FROM orders sql_attr_uint = user_id sql_attr_timestamp = create_time sql_ranged_throttle = 0 sql_query_info = SELECT * FROM orders WHERE id=$id } index myorder { source = order path = /usr/local/sphinx/var/data/myorder docinfo = extern mlock = 0 morphology = none min_word_len = 1 charset_dictpath = /usr/local/mmseg3/etc/ charset_type = zh_cn.utf-8 ngram_len = 0 html_strip = 0 }
3,重启sphinx
# pkill -9 searchd # /usr/local/sphinx/bin/indexer --config /usr/local/sphinx/etc/sphinx.conf --all # /usr/local/sphinx/bin/searchd --config /usr/local/sphinx/etc/sphinx.conf
4,切换到9306,检索测试
mysql> show tables; +--------------+-------------+ | Index | Type | +--------------+-------------+ | dist1 | distributed | | myorder | local | | rt | rt | | tank_test | rt | | test1 | local | | test1stemmed | local | +--------------+-------------+ 6 rows in set (0.00 sec) mysql> desc myorder; +--------------+-----------+ | Field | Type | +--------------+-----------+ | id | bigint | | username | field | | product_name | field | | summary | field | | user_id | integer | | create_time | timestamp | +--------------+-----------+ 6 rows in set (0.00 sec) mysql> select * from myorder where match('坦克'); +------+--------+------------+-------------+ | id | weight | user_id | create_time | +------+--------+------------+-------------+ | 5 | 1304 | 1311895262 | 1407081600 | | 6 | 1304 | 1311895263 | 1406823894 | | 7 | 1304 | 1311895264 | 1406823894 | | 8 | 1304 | 1311895265 | 1406823894 | +------+--------+------------+-------------+ 4 rows in set (0.00 sec)



如何有效監控MySQL性能?使用mysqladmin、SHOWGLOBALSTATUS、PerconaMonitoringandManagement(PMM)和MySQLEnterpriseMonitor等工具。 1.使用mysqladmin查看連接數。 2.用SHOWGLOBALSTATUS查看查詢數。 3.PMM提供詳細性能數據和圖形化界面。 4.MySQLEnterpriseMonitor提供豐富的監控功能和報警機制。

MySQL和SQLServer的区别在于:1)MySQL是开源的,适用于Web和嵌入式系统,2)SQLServer是微软的商业产品,适用于企业级应用。两者在存储引擎、性能优化和应用场景上有显著差异,选择时需考虑项目规模和未来扩展性。

在需要高可用性、高級安全性和良好集成性的企業級應用場景下,應選擇SQLServer而不是MySQL。 1)SQLServer提供企業級功能,如高可用性和高級安全性。 2)它與微軟生態系統如VisualStudio和PowerBI緊密集成。 3)SQLServer在性能優化方面表現出色,支持內存優化表和列存儲索引。

mySqlManagesCharacterSetsetSandCollationsyutusututf-8asthEdeFault,允許ConfigurationAtdataBase,table和columnlevels,AndrequiringCarefullageLignmentToavoidMismatches.1)setDefeaultCharactersetTercharactersetEtCollacterSeteTandColletationForAdataBase.2)conformentcollecharactersettersetertersetcollatertersetcollationcollation

MySQL觸發器是與表相關聯的自動執行的存儲過程,用於在特定數據操作時執行一系列操作。 1)觸發器定義與作用:用於數據校驗、日誌記錄等。 2)工作原理:分為BEFORE和AFTER,支持行級觸發。 3)使用示例:可用於記錄薪資變更或更新庫存。 4)調試技巧:使用SHOWTRIGGERS和SHOWCREATETRIGGER命令。 5)性能優化:避免複雜操作,使用索引,管理事務。

在MySQL中創建和管理用戶賬戶的步驟如下:1.創建用戶:使用CREATEUSER'newuser'@'localhost'IDENTIFIEDBY'password';2.分配權限:使用GRANTSELECT,INSERT,UPDATEONmydatabase.TO'newuser'@'localhost';3.修正權限錯誤:使用REVOKEALLPRIVILEGESONmydatabase.FROM'newuser'@'localhost';然後重新分配權限;4.優化權限:使用SHOWGRA

MySQL適合快速開發和中小型應用,Oracle適合大型企業和高可用性需求。 1)MySQL開源、易用,適用於Web應用和中小型企業。 2)Oracle功能強大,適合大型企業和政府機構。 3)MySQL支持多種存儲引擎,Oracle提供豐富的企業級功能。

MySQL相比其他關係型數據庫的劣勢包括:1.性能問題:在處理大規模數據時可能遇到瓶頸,PostgreSQL在復雜查詢和大數據處理上表現更優。 2.擴展性:水平擴展能力不如GoogleSpanner和AmazonAurora。 3.功能限制:在高級功能上不如PostgreSQL和Oracle,某些功能需要更多自定義代碼和維護。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)